首页 > 其他分享 >Action Bar

Action Bar

时间:2022-10-25 20:25:41浏览次数:32  
标签:xml Bar menu 添加 Action View

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

<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

相关文章