android--toolbar+drawerLayout的使用方法
先放一个效果图:
主activity:
public class MainActivity extends AppCompatActivity { private Toolbar toolbar; private ListView tv; private DrawerLayout drawerlayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); setSupportActionBar(toolbar); ActionBar supportActionBar = getSupportActionBar(); if (supportActionBar != null) { supportActionBar.setDisplayHomeAsUpEnabled(true); supportActionBar.setHomeAsUpIndicator(android.R.drawable.arrow_up_float); } tv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView textView = (TextView) view; String s = textView.getText().toString(); Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.bar, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { int itemId = item.getItemId(); switch (itemId) { case R.id.add: Toast.makeText(this, item.getTitle(), Toast.LENGTH_SHORT).show(); break; case R.id.delete: Toast.makeText(this, item.getTitle(), Toast.LENGTH_SHORT).show(); break; case R.id.search: item.expandActionView(); break; //navigationIcon的点击事件 case android.R.id.home: drawerlayout.openDrawer(GravityCompat.START); break; } return super.onOptionsItemSelected(item); } private void initView() { toolbar = (Toolbar) findViewById(R.id.toolbar); tv = (ListView) findViewById(R.id.tv); drawerlayout = (DrawerLayout) findViewById(R.id.drawerlayout); } }
布局:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/drawerlayout" tools:context=".MainActivity"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" app:title="主标题" app:subtitle="子标题" app:logo="@mipmap/a" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@mipmap/a" ></android.support.v7.widget.Toolbar> </FrameLayout> <ListView android:entries="@array/array" android:id="@+id/tv" android:background="@android:color/holo_red_dark" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="left" /> </android.support.v4.widget.DrawerLayout>
资源文件:strings
<resources> <string name="app_name">toolbar</string> <string-array name="array"> <item>联系人</item> <item>手机号</item> <item>QQ号</item> <item>微信号</item> <item>联系人</item> <item>手机号</item> <item>QQ号</item> <item>微信号</item> <item>联系人</item> <item>手机号</item> <item>QQ号</item> <item>微信号</item> <item>联系人</item> <item>手机号</item> <item>QQ号</item> <item>微信号</item> <item>联系人</item> <item>手机号</item> <item>QQ号</item> <item>微信号</item> </string-array> </resources>
menu:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/add" android:title="添加" app:showAsAction="always|withText" ></item> <item android:id="@+id/delete" android:title="删除" app:showAsAction="never" ></item> <item android:id="@+id/search" android:title="查找" app:showAsAction="collapseActionView|always" app:actionViewClass="android.widget.SearchView"> </item> </menu>
其中,menu中:
app:showAsAction=""
always:一直显示
ifroom:有空间就显示
never:从来不显示
whiwithText:和文字一起展示
collapseActionView:类似于添加控件