日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

android 复用标题栏,Android基础---使用ToolBar教你打造一个通用的标题栏

發(fā)布時(shí)間:2024/9/27 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 复用标题栏,Android基础---使用ToolBar教你打造一个通用的标题栏 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

現(xiàn)在項(xiàng)目中一般都會(huì)使用標(biāo)題欄,谷歌在2014年推出了新的app bar---ToolBar,代替了以前使用的ActionBar。在做項(xiàng)目中會(huì)經(jīng)常用到這個(gè)ToolBar,雖然用的很多,但是自己對(duì)它如何用還不是很明白,今天就來(lái)簡(jiǎn)單的學(xué)習(xí)下這個(gè)控件的使用。

效果圖

效果圖

1. 修改app的style

我們?nèi)绻褂肨oolBar,需要先把原來(lái)的ActionBar隱藏起來(lái),就先要設(shè)置App的主題為Theme.AppCompat.Light.NoActionBar這種主題,就需要在values/style.xml里面修改Apptheme

的Parent或者parent的parent為Theme.AppCompat.Light.NoActionBar,這樣的話才能使用ToolBar得到我們想要的效果。

2. 在布局中使用ToolBar達(dá)到效果圖

1.標(biāo)題

首先在布局文件activity_main.xml中:

android:id="@+id/toolbar"

android:layout_width="match_parent"

android:layout_height="48dp"

android:background="#ffffff"

android:gravity="center"

app:titleTextColor="#1d1d1d">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:text="工作"

android:textColor="#1d1d1d"

android:textSize="16sp" />

需要說(shuō)明的是,ToolBar其實(shí)也是一個(gè)ViewGroup,他的布局和LinearLayout類似,所以在使用的過(guò)程中,可以使用android:layout_gravity="center"來(lái)讓TextView居中顯示

這個(gè)時(shí)候的標(biāo)題欄是這樣的:

標(biāo)題欄-無(wú)返回箭頭-無(wú)右側(cè)按鈕

2. 右側(cè)按鈕

標(biāo)題欄已經(jīng)居中顯示了,但是我們可能還需要在右側(cè)需要一個(gè)按鈕來(lái)進(jìn)行一定的操作,比如下面的按鈕操作

標(biāo)題欄-無(wú)返回箭頭

這個(gè)怎么實(shí)現(xiàn)呢,看下面的代碼:

第一種實(shí)現(xiàn)

android:id="@+id/toolbar"

android:layout_width="match_parent"

android:layout_height="48dp"

android:background="#ffffff"

android:gravity="center"

app:titleTextColor="#1d1d1d">

android:layout_width="match_parent"

android:layout_height="match_parent">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:layout_gravity="center"

android:text="工作"

android:textColor="#1d1d1d"

android:textSize="16sp" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:layout_alignParentRight="true"

android:layout_marginRight="12dp"

android:text="按鈕"

android:textColor="#1d1d1d"

android:textSize="14sp" />

這里在ToolBar的自定義區(qū)放入了一個(gè)RelativeLayout,在RelativeLayout里面放置了一個(gè)標(biāo)題和右側(cè)的按鈕,右側(cè)的按鈕是可以隨意定制的,

第二種實(shí)現(xiàn)

我們可以利用菜單選項(xiàng)menu來(lái)實(shí)現(xiàn)這種效果,

首先在res目錄下新建menu文件夾,在該文件夾下面建立menu.main.xml,代碼如下:

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

tools:context=".MainActivity">

android:id="@+id/action_share"

android:orderInCategory="90"

android:title="按鈕"

app:showAsAction="ifRoom" />

在MainActivity.java中重寫(xiě)onCreateOptionsMenu方法如下所示:

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.menu_main, menu);

return true;

}

3. 左側(cè)的返回箭頭

首先,你得先準(zhǔn)備一個(gè)返回箭頭的圖標(biāo),然后以下兩種都行,都可以實(shí)現(xiàn)顯示小箭頭,并且點(diǎn)擊小箭頭返回

第一種方案

//設(shè)置小箭頭

toolbar.setNavigationIcon(R.drawable.common_back_ic);

//設(shè)置小箭頭點(diǎn)擊事件

toolbar.setNavigationOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

finish();

}

});

這種方案是只能在當(dāng)前的Activity中使用,達(dá)不到復(fù)用的目的。

第二種方案

在日常的開(kāi)發(fā)中,通常我們會(huì)寫(xiě)一個(gè)基類,讓所有的Activity都繼承于這個(gè)基類,便于統(tǒng)一管理和減少代碼量。

所以我們可以在改基類(比如:BaseActivity.java)中寫(xiě)入以下方法:

/**

* 設(shè)置左上角back按鈕

*/

public void setBackArrow() {

final Drawable upArrow = getResources().getDrawable(R.drawable.common_back_ic);

//給ToolBar設(shè)置左側(cè)的圖標(biāo)

getSupportActionBar().setHomeAsUpIndicator(upArrow);

// 給左上角圖標(biāo)的左邊加上一個(gè)返回的圖標(biāo) 。對(duì)應(yīng)ActionBar.DISPLAY_HOME_AS_UP

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

//設(shè)置actionBar的標(biāo)題是否顯示,對(duì)應(yīng)ActionBar.DISPLAY_SHOW_TITLE。

getSupportActionBar().setDisplayShowTitleEnabled(false);

}

/**

* 點(diǎn)擊左上角的返回按鈕,結(jié)束本Activity

* home就是左上角的小箭頭,在toolbar上

*

* @param item

* @return

*/

@Override

public boolean onOptionsItemSelected(MenuItem item) {

if (item.getItemId() == android.R.id.home) {

basefinish();

return true;

}

return super.onOptionsItemSelected(item);

}

/**

* 抽象方法,用于結(jié)束activity

*/

public abstract void basefinish();

@Override

public void onBackPressed() {

basefinish();

}

這樣的話,我們?cè)诘钠渌鸄ctivity只要繼承于這個(gè)BaseActivity,就需要實(shí)現(xiàn)抽象方法,抽象方法會(huì)實(shí)現(xiàn)返回操作,我們每次只用調(diào)用 setBackArrow()這個(gè)方法就可以很方便的實(shí)現(xiàn)返回小箭頭的功能了。簡(jiǎn)直不能更方便啦!

到此就實(shí)現(xiàn)了ToolBar的基本使用,建立了自己的一個(gè)標(biāo)題欄,效果和上面是一樣的:

標(biāo)題欄-最終

特此記錄!

總結(jié)

以上是生活随笔為你收集整理的android 复用标题栏,Android基础---使用ToolBar教你打造一个通用的标题栏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。