Android中的 Material Design
阿新 • • 發佈:2018-12-17
1. 為什麼有 Material Design?
安卓標準的介面設計風格沒有IOS美觀,而且Android平臺介面風格不統一。Material Design在2014年推出,解決美觀與Android介面風格不統一問題。
2.Toolbar代替ActionBar,更加靈活
更改application的主題:
res-->values-->styles
修改activity_main.xml中程式碼,加入Toolbar:
修改MainActivity中程式碼:
3. 滑動選單DrawerLayout(裡面有兩部分,一部分為主螢幕,一部分為隱藏的選單)
4. 導航檢視NavigationView(美化滑動選單DrawerLayout)
加入build閉包:
準備一:建立nav_menu.xml:
準備二:建立nav_header.xml:
修改主佈局檔案:
修改MainActivity檔案:
public class MainActivity extends AppCompatActivity { private DrawerLayout mDrawerLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar=findViewById(R.id.toolbar); setSupportActionBar(toolbar);//設定標題欄 mDrawerLayout=findViewById(R.id.drawer_layout); NavigationView navigationView=findViewById(R.id.nav_view); ActionBar actionBar=getSupportActionBar();//獲取標題欄 if (actionBar!=null){ actionBar.setDisplayHomeAsUpEnabled(true);//顯示導航按鈕 actionBar.setHomeAsUpIndicator(R.mipmap.ic_launcher);//設定導航按鈕圖示(Indicator指示器) } navigationView.setCheckedItem(R.id.inform);//預設選中 navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) {//監聽 mDrawerLayout.closeDrawers();//關閉導航抽屜 return true; } }); } @Override public boolean onCreateOptionsMenu(Menu menu) {//建立選項選單,在右上角 getMenuInflater().inflate(R.menu.toolbar,menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ case android.R.id.home: mDrawerLayout.openDrawer(GravityCompat.START);//將滑動選單展示出來 break; case R.id.duty: Toast.makeText(this,"you clicked duty",Toast.LENGTH_SHORT).show(); break; case R.id.more: Toast.makeText(this,"you clicked more",Toast.LENGTH_SHORT).show(); break; case R.id.settings: Toast.makeText(this,"you clicked settings",Toast.LENGTH_SHORT).show(); break; default: } return true; } }
5. 結果大致介面: