菜单选项之ToolBar
关键词:inflateMenu 解析布局文档 setOnMenuItemClickListener 设定菜单选项监听
navigationIcon 导航图标 setNavigationOnClickListener 监听导航选项
首先建立一个类
public class ToolBar_Activity extends AppCompatActivity {
Toolbar mToolbar;
View view;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tool_bar_layout);
view = findViewById(R.id.Menu_Relative); TODO: 2016/6/6 得到view的对向 在SnackBar里面使用
mToolbar = (Toolbar) findViewById(R.id.Menu_ToolBar);
mToolbar.inflateMenu(R.menu.my_option_menu);//todo 解析布局文档
// TODO 监听选项
mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.my_option_add:
// Toast.makeText(ToolBar_Activity.this, "添加成功", Toast.LENGTH_SHORT).show();
Snackbar.make(view,"添加成功",Snackbar.LENGTH_SHORT).show();
break;
case R.id.my_option_delete:
Toast.makeText(ToolBar_Activity.this, "删除成功", Toast.LENGTH_SHORT).show();
break;
case R.id.my_option_edit:
Toast.makeText(ToolBar_Activity.this, "修改成功", Toast.LENGTH_SHORT).show();
break;
case R.id.my_option_check:
Toast.makeText(ToolBar_Activity.this, "查找到", Toast.LENGTH_SHORT).show();
break;
}
return false;
}
});
// TODO 监听导航选项
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(ToolBar_Activity.this, "返回", Toast.LENGTH_SHORT).show();
finish();
}
});
}
}
R.layout.activity_tool_bar_layout对应的xml文档,应主动去掉padding 的一切属性
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/Menu_Relative"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.v7.widget.Toolbar //必须使用v7.widget兼容包,否则Toolbar只支持5.0以后的版本
android:id="@+id/Menu_ToolBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"//Toolbar本身就是ViewGroup 可以任意设定一切view 的属性
android:background="@color/green"
app:title="设置" //这些全是APP属性
app:titleTextColor="@color/blue"
app:logo="@drawable/dog1"
app:subtitle="java"
app:subtitleTextColor="@color/blue"
app:navigationIcon="@drawable/ic_action_back"
/>
</RelativeLayout>
R.menu.my_option_menu对应的menu资源属性,menu资源应设定在res下
showAsAction 对应值为always 总是ToolBar显示
never 永不在ToolBar中显示
ifRoom 有空间就显示
withText 显示Title的text ,可以和其他值一起使用(ifRoom|withText)
collapseActionView actionview是可伸缩的API(14)
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/my_option_add"
android:title="添加"
app:showAsAction="ifRoom"/>
<item android:id="@+id/my_option_delete"
android:title="删除"
app:showAsAction="ifRoom|withText"/>
<item android:id="@+id/my_option_edit"
android:title="修改"
app:showAsAction="never"
android:orderInCategory="100"/>
<item android:id="@+id/my_option_check"
android:title="查找"
android:icon="@drawable/ic_action_search"
app:showAsAction="always"
android:orderInCategory="100"/>
</menu>
还应该在mainifest.xml 文件中修改theme主题
只有屏蔽掉ActionBar才能使用Toolbar
<activity android:name=".Menu.ToolBar_Activity" android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
关键词:inflateMenu 解析布局文档 setOnMenuItemClickListener 设定菜单选项监听
navigationIcon 导航图标 setNavigationOnClickListener 监听导航选项
首先建立一个类
public class ToolBar_Activity extends AppCompatActivity {
Toolbar mToolbar;
View view;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tool_bar_layout);
view = findViewById(R.id.Menu_Relative); TODO: 2016/6/6 得到view的对向 在SnackBar里面使用
mToolbar = (Toolbar) findViewById(R.id.Menu_ToolBar);
mToolbar.inflateMenu(R.menu.my_option_menu);//todo 解析布局文档
// TODO 监听选项
mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.my_option_add:
// Toast.makeText(ToolBar_Activity.this, "添加成功", Toast.LENGTH_SHORT).show();
Snackbar.make(view,"添加成功",Snackbar.LENGTH_SHORT).show();
break;
case R.id.my_option_delete:
Toast.makeText(ToolBar_Activity.this, "删除成功", Toast.LENGTH_SHORT).show();
break;
case R.id.my_option_edit:
Toast.makeText(ToolBar_Activity.this, "修改成功", Toast.LENGTH_SHORT).show();
break;
case R.id.my_option_check:
Toast.makeText(ToolBar_Activity.this, "查找到", Toast.LENGTH_SHORT).show();
break;
}
return false;
}
});
// TODO 监听导航选项
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(ToolBar_Activity.this, "返回", Toast.LENGTH_SHORT).show();
finish();
}
});
}
}
R.layout.activity_tool_bar_layout对应的xml文档,应主动去掉padding 的一切属性
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/Menu_Relative"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.v7.widget.Toolbar //必须使用v7.widget兼容包,否则Toolbar只支持5.0以后的版本
android:id="@+id/Menu_ToolBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"//Toolbar本身就是ViewGroup 可以任意设定一切view 的属性
android:background="@color/green"
app:title="设置" //这些全是APP属性
app:titleTextColor="@color/blue"
app:logo="@drawable/dog1"
app:subtitle="java"
app:subtitleTextColor="@color/blue"
app:navigationIcon="@drawable/ic_action_back"
/>
</RelativeLayout>
R.menu.my_option_menu对应的menu资源属性,menu资源应设定在res下
showAsAction 对应值为always 总是ToolBar显示
never 永不在ToolBar中显示
ifRoom 有空间就显示
withText 显示Title的text ,可以和其他值一起使用(ifRoom|withText)
collapseActionView actionview是可伸缩的API(14)
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/my_option_add"
android:title="添加"
app:showAsAction="ifRoom"/>
<item android:id="@+id/my_option_delete"
android:title="删除"
app:showAsAction="ifRoom|withText"/>
<item android:id="@+id/my_option_edit"
android:title="修改"
app:showAsAction="never"
android:orderInCategory="100"/>
<item android:id="@+id/my_option_check"
android:title="查找"
android:icon="@drawable/ic_action_search"
app:showAsAction="always"
android:orderInCategory="100"/>
</menu>
还应该在mainifest.xml 文件中修改theme主题
只有屏蔽掉ActionBar才能使用Toolbar
<activity android:name=".Menu.ToolBar_Activity" android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>