1.app主題使用理解
- 基本主題使用
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item> <!-- 標(biāo)題欄的背景色 -->
<item name="colorPrimaryDark">@color/colorPrimaryDark</item> <!-- 頂部顯示時(shí)間,網(wǎng)絡(luò)時(shí)的背景色 -->
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
- toolbar使用
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:background="?attr/colorPrimary"
android:layout_width="match_parent"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
android:layout_height="?attr/actionBarSize"></android.support.v7.widget.Toolbar>
2.滑動(dòng)菜單
DrawerLayout :這是一個(gè)布局,允許直接放入兩個(gè)子控件;第一個(gè)子控件是主屏幕中顯示的內(nèi)容;第二個(gè)子控件是滑動(dòng)菜單中顯示的內(nèi)容扇救。第二個(gè)子控件中的layout_gravity屬性必須指定,這是判斷屏幕左滑還是右滑出現(xiàn)抽屜菜單的香嗓。
NavigationView:放置在DrawerLayout下迅腔,作為第二個(gè)子控件; NavigationView中有兩個(gè)子布局:nav_menu掺出,headerlayout百框;
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="fff"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/headerlayout"
app:menu="@menu/nav_menu" />
</android.support.v4.widget.DrawerLayout>
//點(diǎn)擊事件處理
mDrawerLayout= (DrawerLayout) findViewById(R.id.drawer_layout);
NavigationView navigationView= (NavigationView) mDrawerLayout.findViewById(R.id.nav_view);
navigationView.setCheckedItem(R.id.nav_call);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.nav_bike:
Toast.makeText(NavigationActivity.this,"bike",Toast.LENGTH_SHORT).show();
break;
case R.id.nav_call:
Toast.makeText(NavigationActivity.this,"call",Toast.LENGTH_SHORT).show();
break;
case R.id.nav_eat:
Toast.makeText(NavigationActivity.this,"eat",Toast.LENGTH_SHORT).show();
break;
}
mDrawerLayout.closeDrawers();
return true;
}
});
- FloatingActionButton 懸浮按鈕,普通按鈕使用
<android.support.design.widget.FloatingActionButton
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_margin="10dp"
/>
- Snackbar 提示布局锨并,底部出現(xiàn)露该,類(lèi)似Toast
- 卡片式布局
3.優(yōu)雅的顯示
- 解決控件間的遮擋問(wèn)題
- recycleview向下滑動(dòng)的時(shí)候解幼,toolbar隱藏特铝,向上出現(xiàn)解決方式
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways|snap" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="16dp"
android:src="@drawable/ic_done" />
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/nav_header"
app:menu="@menu/nav_menu" />
</android.support.v4.widget.DrawerLayout>
下拉刷新控件
可折疊式標(biāo)題欄
充分利用系統(tǒng)狀態(tài)欄空間