最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android ToolBar控件詳解及實(shí)例

 更新時(shí)間:2017年03月17日 10:08:16   投稿:lqh  
這篇文章主要介紹了 Android ToolBar控件詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下

ToolBar控件詳解

在Activity中添加ToolBar

P1

1.添加庫

dependencies {
  ...
  compile "com.android.support:appcompat-v7:18.0.+"
}

2.Activity要繼承AppCompatActivity

3.設(shè)置主題

使用ToolBar,要將系統(tǒng)默認(rèn)的ActionBar隱藏掉

<application
  android:theme="@style/Theme.AppCompat.Light.NoActionBar"
  />

4.在XML添加ToolBar布局

<android.support.v7.widget.Toolbar
  android:id="@+id/my_toolbar"
  android:layout_width="match_parent"
  android:layout_height="?attr/actionBarSize"
  android:background="?attr/colorPrimary"
  android:elevation="4dp"
  android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
  app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

Material Design specification 建議設(shè)置 elevation 為 4dp

Toolbar放在Activity的頂部(等于廢話)

5.設(shè)置ToolBar

在Activity的onCreate()方法中,調(diào)用setSupportActionBar()方法,把我們的ToolBar對(duì)象傳遞進(jìn)去,將我們xml中添加的ToolBar設(shè)置為我們這個(gè)Activity頁面的App Bar。

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_my);
  Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
  setSupportActionBar(myToolbar);
  }

現(xiàn)在,我們的頁面中,應(yīng)該就會(huì)有一個(gè)App Bar了,默認(rèn)情況下,這個(gè)App Bar只會(huì)顯示一個(gè)App的名字和一個(gè)帶有下拉選項(xiàng)的按鈕,也可以在App Bar上添加更多的選項(xiàng)按鈕

添加并處理一個(gè)Action

ToolBar允許在上面添加操作按鈕,但是因?yàn)門oolBar上空間是有限的,如果一個(gè)程序有太多的Action,那么可以將Action添加到下拉菜單中,而不顯示在ToolBar上

P2

添加一個(gè)Action按鈕

可以在XML文件中定義所有我們想添加的操作按鈕和下拉列表中的行為,如果想要添加Action,可以在 res/目錄下創(chuàng)建一個(gè)新的XML文件,添加元素。例如這樣

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

  <!-- "Mark Favorite", should appear as action button if possible -->
  <item
    android:id="@+id/action_favorite"
    android:icon="@drawable/ic_favorite_black_48dp"
    android:title="@string/action_favorite"
    app:showAsAction="ifRoom"/>

  <!-- Settings, should always be in the overflow -->
  <item android:id="@+id/action_settings"
     android:title="@string/action_settings"
     app:showAsAction="never"/>

</menu>

App:showAsAction 屬性是用來設(shè)置Action顯示在哪,如果我們?cè)O(shè)置 app:showAsAction =”ifRoom”(示例中最常用的一種方式) ,這個(gè)Action將顯示在ToolBar上,如果ToolBar上沒有足夠的控件,則顯示在下拉菜單中。如果在程序中設(shè)置為 app:showAsAction=”never”,那么這個(gè)Action將永遠(yuǎn)顯示在下拉列表中,而不會(huì)顯示在ToolBar上。
響應(yīng)操作(回調(diào))

當(dāng)用戶選擇了一個(gè)Action后,系統(tǒng)會(huì)回調(diào) onOptionsItemSelected() 方法并傳遞 MenuItem 對(duì)象,在 onOptionsItemSelected() 的實(shí)現(xiàn)中,調(diào)用 MenuItem.getItemId() 方法來確定按下了哪個(gè)項(xiàng)目。返回的 ID 與您在相應(yīng)的 元素 Android: id 屬性中聲明的值匹配。

例如下面

@Override
public boolean onOptionsItemSelected(MenuItem item) {
  switch (item.getItemId()) {
    case R.id.action_settings:
      // User chose the "Settings" item, show the app settings UI...
      return true;

    case R.id.action_favorite:
      // User chose the "Favorite" action, mark the current item
      // as a favorite...
      return true;

    default:
      // If we got here, the user's action was not recognized.
      // Invoke the superclass to handle it.
      return super.onOptionsItemSelected(item);

  }
}

添加一個(gè)回到主界面的按鈕

應(yīng)用為了使用戶可以方便的回到主界面,ToolBar可以添加一個(gè)按鈕,直接返回到指定的主界面。

G1

聲明主界面(父界面)

需要在清單文件中通過設(shè)置 android: parentActivityName 屬性聲明,如果要支持舊版本的Android設(shè)備,需要定義 ,類似這樣:

<application ... >
  ...

  <!-- The main/home activity (it has no parent activity) -->

  <activity
    android:name="com.example.myfirstapp.MainActivity" ...>
    ...
  </activity>

  <!-- A child of the main activity -->
  <activity
    android:name="com.example.myfirstapp.MyChildActivity"
    android:label="@string/title_activity_child"
    android:parentActivityName="com.example.myfirstapp.MainActivity" >

    <!-- Parent activity meta-data to support 4.0 and lower -->
    <meta-data
      android:name="android.support.PARENT_ACTIVITY"
      android:value="com.example.myfirstapp.MainActivity" />
  </activity>
</application>

使用返回按鈕

若要使用返回的按鈕,需要調(diào)用setDisplayHomeAsUpEnabled()方法,類似這樣:

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_my_child);

  // my_child_toolbar is defined in the layout file
  Toolbar myChildToolbar =
    (Toolbar) findViewById(R.id.my_child_toolbar);
  setSupportActionBar(myChildToolbar);

  // Get a support ActionBar corresponding to this toolbar
  ActionBar ab = getSupportActionBar();

  // Enable the Up button
  ab.setDisplayHomeAsUpEnabled(true);
}

添加Action Views

和上面 添加并處理一個(gè)Action 類似,只不過設(shè)置 showAsAction 為 “ifRoom|collapseActionView” 或者 “never|collapseActionView” 就可以了,類似這樣

<item android:id="@+id/action_search"
   android:title="@string/action_search"
   android:icon="@drawable/ic_search"
   app:showAsAction="ifRoom|collapseActionView"
   app:actionViewClass="android.support.v7.widget.SearchView" />

P3

這里我們添加的是一個(gè)帶有搜索功能的Search按鈕,如果我們要自定義一個(gè)自己的按鈕,不添加 actionViewClass 即可

如果想要配置這個(gè)Action,可以在 onCreateOptionsMenu() 的回調(diào)里通過 getActionView() 獲取到Search對(duì)象,類似這樣:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
  getMenuInflater().inflate(R.menu.main_activity_actions, menu);

  MenuItem searchItem = menu.findItem(R.id.action_search);
  SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);

  // Configure the search info and add any event listeners...

  return super.onCreateOptionsMenu(menu);6 
}

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Flutter 日期時(shí)間DatePicker控件及國際化

    Flutter 日期時(shí)間DatePicker控件及國際化

    這篇文章主要介紹了Flutter 日期時(shí)間DatePicker控件及國際化,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Android 使用AsyncTask實(shí)現(xiàn)斷點(diǎn)續(xù)傳

    Android 使用AsyncTask實(shí)現(xiàn)斷點(diǎn)續(xù)傳

    這篇文章主要介紹了Android 使用AsyncTask實(shí)現(xiàn)斷點(diǎn)續(xù)傳的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-05-05
  • Android自定義View繪制彩色圓弧

    Android自定義View繪制彩色圓弧

    這篇文章主要為大家詳細(xì)介紹了Android自定義View繪制彩色圓弧,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Android動(dòng)態(tài)模糊效果的快速實(shí)現(xiàn)方法

    Android動(dòng)態(tài)模糊效果的快速實(shí)現(xiàn)方法

    這篇文章主要介紹了Android動(dòng)態(tài)模糊效果的快速實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Android客戶端與服務(wù)端交互

    Android客戶端與服務(wù)端交互

    這篇文章主要為大家詳細(xì)介紹了Android客戶端與服務(wù)端交互之登陸示例,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Android Parcleable接口的調(diào)用源碼層分析

    Android Parcleable接口的調(diào)用源碼層分析

    這篇文章主要給大家介紹了關(guān)于利用Kotlin如何實(shí)現(xiàn)Android開發(fā)中的Parcelable的相關(guān)資料,并且給大家介紹了關(guān)于Android Parcleable源碼層問題,需要的朋友可以參考下
    2022-12-12
  • android 多線程技術(shù)應(yīng)用

    android 多線程技術(shù)應(yīng)用

    能夠在屏幕上“實(shí)時(shí)地顯示”時(shí)間的流逝,單線程程序是無法實(shí)現(xiàn)的,必須要多線程程序才可以實(shí)現(xiàn),即便有些計(jì)算機(jī)語言可以通過封裝好的類實(shí)現(xiàn)這一功能,但從本質(zhì)上講這些封裝好的類就是封裝了一個(gè)線程,具體祥看本文
    2012-12-12
  • Android編程實(shí)現(xiàn)讀取工程中的txt文件功能

    Android編程實(shí)現(xiàn)讀取工程中的txt文件功能

    這篇文章主要介紹了Android編程實(shí)現(xiàn)讀取工程中的txt文件功能,結(jié)合實(shí)例形式詳細(xì)分析了Android讀取txt文件的原理、操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-02-02
  • Android 仿余額寶數(shù)字跳動(dòng)動(dòng)畫效果完整代碼

    Android 仿余額寶數(shù)字跳動(dòng)動(dòng)畫效果完整代碼

    這篇文章主要介紹了Android 仿余額寶數(shù)字跳動(dòng)動(dòng)畫效果完整代碼,需要的朋友可以參考下
    2017-11-11
  • Android通過自定義控件實(shí)現(xiàn)360軟件詳情頁效果

    Android通過自定義控件實(shí)現(xiàn)360軟件詳情頁效果

    這篇文章主要給大家介紹了Android通過自定義控件實(shí)現(xiàn)360軟件詳情頁效果的相關(guān)資料,實(shí)現(xiàn)后的效果非常不錯(cuò),文中也給出了詳細(xì)的示例代碼和介紹,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-05-05

最新評(píng)論

龙海市| 邯郸县| 温宿县| 吴川市| 茶陵县| 亚东县| 新龙县| 弥渡县| 长治县| 寿宁县| 乐陵市| 德州市| 北宁市| 双辽市| 合山市| 久治县| 体育| 伽师县| 桃园市| 蒲城县| 华阴市| 古田县| 莎车县| 沂南县| 方正县| 大埔区| 庆城县| 重庆市| 石城县| 北票市| 阿拉尔市| 顺平县| 房产| 宾阳县| 临猗县| 台江县| 宁化县| 阜平县| 遂宁市| 嘉禾县| 奎屯市|