先放一个效果图:
主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:类似于添加控件