Action Bar
- 显示和隐藏Action Bar
- Action Bar与Tab
- 添加Action Item
- 添加Action View
实现层级式导航
高铁的行李架。又节省空间,又可以提供服务。
所以在APP中,同理。
Action Bar
全局布局文件显示和隐藏Action Bar
AndroidManifest.xml
<activity android:name=". MainActivity"
android:theme="estyle/Theme.AppCompat.Light.NoActionBar">
通过按钮来分别显示和隐藏ActionBar
在布局中添加两个按钮,然后在java中:
//获取ActionBar
final ActionBar actionBar=getSupportActionBar () ;
//获取两个button对象
Button button_h= (Button) findViewById(R.id.button_hide);
Button button_s= (Button) findViewById(R.id.button_show);
//隐藏Action Bar
button_h.setOnClickListener (new View.OnClickListener (){
@Override
public void onClick(View v) {
actionBar.hide();
}
}) ;
//显示Action Bar
button_s.setOnClickListener (new View.OnClickListener (){
@Override
public void onClick(View v) {
actionBar. show();
}
}) ;
Action Item
Action Bar 上面的小图标,叫做Action Item
添加Action ltem的步骤
布局界面
创建菜单资源文件
重写onCreateOptionsMenu)方法解析菜单资源文件
app:showAsAction="xxxxxx"
该组件的展示方式:always、ifRoom(有空间则显示)、never、withText
res/menu/menu.xml
<?xml version="1.o" encoding="utf-8" ?>
menu xmlns: android="http://schemas.android.com/apk/res/android"
xmlns : app="http: l lschemas.android.com/apk/res-auto"> //载入空间语句
<item
android:id="@+id/search"
android: icon="@drawable/search"
android:title="search"
app:showAsAction="always"></item>
<item
android:id="@+id/bell"
android: icon="@drawable/search"
android:title="消 息"
app:showAsAction="ifRoom"></item>
</menu>
MainActivity.java
@Override
protected void onCreate (Bundle savedInstanceState){
super. onCreate (savedInstanceState) ;
setContentView(R.layout.activity_main) ;
//解析菜单资源文件
@Override
public boolean onCreateOptionsMenu (Menu menu){
MenuInflater inflater=getMenuInflater();//实例化一个MenuInflater对象inflater.inflate (R. menu. menu, menu);//解析菜单文件
return super. onCreateOptionsMenu (menu) ;
}
Action View
Activity 负责管理用户与屏幕的交互
AndroidManifest.xml全局配置文件
- Activities
- Broadcast Receivers
- Content Providers
- Services
- Permission
添加Action View
menu.xml 放置三个item
<item android:id="e+id/search"
android:title="搜索”
app:actionViewClass="android.support.v7.widget.SearchView"
app: showAsAction="always" />
<item android:id="0+id/img1"
android:title="通讯录”
app:actionLayout="elayout/img_message"T
app:showAsAction="always"/>
<item android: id="@+id/img2'
android:title="添加"
app:actionLayout="elayout/img_add"
app : showAsAction="always"/>
MainActivity.java
@Override
protected void onCreate (Bundle savedInstanceState){
super. onCreate (savedInstanceState) ;
setContentView(R.layout.activity_main) ;
getSupporthctionBar().setDisplayShowTitleEnabled(false);//隐藏Action Bar上的显示标题
}
//解析菜单资源文件
@Override
pub1ic boolean onCreateOptionsMenu (Menu menu){
MenuInflater inflater=getMenuInflater();//实例化一个MenuInflater对象
inflater.inflate (R.menu.menu, menu);
//解析菜单资源文件
return super. onCreateOptionsMenu(menu);
}
img_message.xml
?xml version="1.o"encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android: layout_width="match_parent"
android: layout_height="match_parent"android: orientation="vertical">
<ImageView
android: layout_width="wrap_content"android: layoutheight="wrap_content"android: layout_marginTop="12dp"
android:src="edrawable/message"/>
</ LinearLayout>
添加Action View的两种方法
- app:actionViewClass属性→实现类
- app:actionLayout属性→布局文件
Action Bar与Tab
Tab:单机Action Bar上的小item过后就可以切换。
Fragment1、Fragment2、Fragment3、Fragment4、Fragment5、
MainActivity(添加各个标签页到Action Bar)、MyTabListener
- 设置使用Tab导航方式
- 添加多个Tab标签页,并为每个Tab标签页添加事件监听
模拟有道词典app的带Tab导航的Action Bar。
开发步骤∶
创建5个Fragment,以及对应的布局文件
创建MyTabListener类,实现各标签页的切换
设置ActionBar为选项卡模式,并将5个标签页添加到ActionBar中
实现层级式导航
程序导航图标!
模拟微信实现带向上导航按钮的Action Bar
开发步骤∶
布局界面并创建FriendsActivity,添加一个Acvtivity调用另一个的方法
判断父Activity是否为空,不为空设置导航图标显示
为FriendsActivity配置父Activity
FriendsActivity.java
public class FriendsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState) ;
setContentView(R.layout.activity_friends);//判断父Activity是否为空,不为空设置导航图标显示
if(NavUtils.getParentActivityName(FriendsActivity.this)! =null){
getSupportActionBar ().setDisplayHomeAsUpEnabled(true);//显示向左的箭头图标
}
AndroidManifest.xml
<activity android:name=”.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/> </intent-filter>
</activity>
<activity
android:name=".FriendsActivity"
android: labe1="朋友圈">
<meta-data
android:name="android. support. PARENT_ACTIVITY"
android: value=". MainActivity/>
</activity>
标签:xml,Bar,menu,添加,Action,View
From: https://www.cnblogs.com/tupo/p/16826155.html