• 买彩网官网

  • 买彩网官网

  • 买彩网官网

买彩网官网

作(zuo)者︰潘侯(hou)爺  發布日期︰2020-02-19 08:07:34
Tag標簽︰中(zhong)通  視窗  標題  
  • Android3.0之後,Google對(dui)UI導航(hang)設計(ji)上(shang)進行了一系(xi)列的mu)gai)革,其中(zhong)有(you)一個非常好用的新(xin)功能就是引入的ActionBar,他用于取代3.0之前的標題欄,並(bing)提供更為(wei)豐(feng)富的導航(hang)效果。ActionBar的主要目的是︰

    1.提供一個用于識(shi)別應用程序的標示和(he)用戶的位置(zhi)的專用空間。

    2.在不同(tong)的應用程序之間提供一致(zhi)的導航(hang)和(he)視覺體驗。

    3.突(tu)出(chu)Activity的關(guan)鍵操(cao)作(zuo)(如“搜索”、“創建”、“共享”等),並(bing)且yi)誑稍yu)見的方法內給用戶提供快捷的訪問。

    今天我們就簡(jian)單梳理一下如何通過ActionBar為(wei)標題添加(jia)“搜索”和(he)“分享”的操(cao)作(zuo)視窗,如下圖︰

    操(cao)作(zuo)視窗是作(zuo)為(wei)操(cao)作(zuo)項目按(an)鈕(niu)的替(ti)代品顯示在操(cao)作(zuo)欄中(zhong)的一個可視構(gou)件。例(li)如,如果你有(you)一個用于搜索的可選菜shuo)?睿 憧梢yi)用Searchview類來替(ti)代操(cao)作(zuo)欄上(shang)的搜索按(an)鈕(niu)。

    要個菜shuo)?試粗zhong)的一個項目聲明一個操(cao)作(zuo)視窗,你既可以(yi)使用android:actionLayout屬性也android:actionviewClass屬性來分別指(zhi)定一個布局資源或要使用的可視構(gou)件類。

    與操(cao)作(zuo)視窗類似(si),操(cao)作(zuo)提供器(由ActionProvider類定義(yi)的)用一個定制的布局代替(ti)一個操(cao)作(zuo)項目,它還需要對(dui)所有(you)這些項目行為(wei)的控制。當你在操(cao)作(zuo)欄中(zhong)給一個菜shuo)?釕饕桓霾cao)作(zuo)項目時,它不僅要一個定制的布局來控制這個菜shuo)?畹耐夤郟 業彼諳允駒諞緋chu)菜shuo)?zhong)時,還要處理它的默認(ren)事件。無論是在操(cao)作(zuo)欄中(zhong)還是在溢出(chu)菜shuo)?zhong),它都能夠(gou)提供一個子(zi)菜shuo)?@li)如,ActionProvider的擴展(zhan)類ShareActionProvider,它通過在操(cao)作(zuo)欄中(zhong)顯示一個有(you)效的共享目標列表來方便共享操(cao)作(zuo)。與使用傳統的調用ACTION_SEND類型Intent對(dui)象的操(cao)作(zuo)項不同(tong),你能夠(gou)聲明一個ShareActionProvider對(dui)象來處理一個操(cao)作(zuo)項。這種操(cao)作(zuo)提供器會保留一個帶有(you)處理ACTION_SEND的Intent對(dui)象的應用程序的nan)呂 斜恚 拐飧霾說(shuo)?釹允駒諞緋chu)菜shuo)?zhong)。因此,當你使用像這樣的操(cao)作(zuo)提供器時,你不必處理有(you)關(guan)這個菜shuo)?畹撓沒 錄R 桓霾cao)作(zuo)項聲明一個操(cao)作(zuo)提供器,就要在菜shuo)?試粗zhong)對(dui)應的<item>元素(su)中(zhong)定義(yi)android:actionProviderClass屬性,提供器要使用完整(zheng)的類名。

    第一步︰hang) enu資源文件

    建立menu資源文件,設置(zhi)搜索和(he)分享的ITEM功能組件。

    (1)新(xin)建menu文件夾,如圖

    (2)在menu資源文件夾下建立serch_share_menu.xml文件(自(zi)定義(yi)名稱)

    (3)serch_share_menu.xml組件部署代碼︰

     1 <?xml version='1.0' encoding='utf-8'?> 2 <menu xmlns:android='http://schemas.android.com/apk/res/android' 3 xmlns:app='http://schemas.android.com/apk/res-auto'> 4 <item 5  android:id='@+id/search' 6  app:actionViewClass='android.support.v7.widget.SearchView' 7  android:icon='@android:drawable/ic_menu_search' 8  android:orderInCategory='100' 9  android:title='搜索'10  app:showAsAction='alwayscollapseActionView' />11 <item12  android:id='@+id/share'13  android:icon='@android:drawable/ic_menu_share'14  android:orderInCategory='200'15  android:title='共享'16  app:actionProviderClass='android.support.v7.widget.ShareActionProvider'17  app:showAsAction='ifRoom' />18 </menu>

    第二(er)步︰java中(zhong)功能實現(xian)代碼MainActivity.java:

     1 import android.content.Intent; 2 import android.support.v4.view.MenuItemCompat; 3 import android.support.v7.app.AppCompatActivity; 4 import android.os.Bundle; 5 import android.support.v7.widget.SearchView; 6 import android.support.v7.widget.ShareActionProvider; 7 import android.view.Gravity; 8 import android.view.Menu; 9 import android.view.MenuItem;10 import android.widget.Toast;11 /**12 * Created by panchengjia on 2016/12/23.13 */14 15 public class MainActivity extends AppCompatActivity {16 SearchView searchView;17 @Override18 protected void onCreate(Bundle savedInstanceState) {19  super.onCreate(savedInstanceState);20  setContentView(R.layout.activity_main);21 }22 @Override23 public boolean onCreateOptionsMenu(Menu menu) {24  //使用菜shuo)?畛chong)器獲取menu下的菜shuo)?試次募5  getMenuInflater().inflate(R.menu.search_share_menu,menu);26  //獲取搜索的菜shuo)?榧7  MenuItem menuItem = menu.findItem(R.id.search);28  searchView = (SearchView) MenuItemCompat.getActionView(menuItem);29  //設置(zhi)搜索的事件30  searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {31  @Override32  public boolean onQueryTextSubmit(String query) {33  Toast t = Toast.makeText(MainActivity.this, query, Toast.LENGTH_SHORT);34   t.setGravity(Gravity.TOP,0,0);35   t.show();36   return false;37  }38  @Override39  public boolean onQueryTextChange(String newText) {40   return false;41  }42  });43  //獲取分享的菜shuo)?zi)組件44  MenuItem shareItem = menu.findItem(R.id.share);45  ShareActionProvider shareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem);46  //通過setShareIntent調用getDefaultIntent()獲取所有(you)具有(you)分享功能的App47  shareActionProvider.setShareIntent(getDefaultIntent());48  return super.onCreateOptionsMenu(menu);49 }50 //設置(zhi)可以(yi)調用手機內所有(you)可以(yi)分享圖ji) 撓τ1 private Intent getDefaultIntent() {52  Intent intent = new Intent();53  intent.setAction(Intent.ACTION_SEND);54  //這里的類型可以(yi)按(an)需求設置(zhi)55  intent.setType('image/*');56  return intent;57 }58 }


    雖然(ran)用actionBar可以(yi)實現(xian)這些功能,但(dan)在各個安卓版本(ben)和(he)定制Rom中(zhong)的效果表現(xian)不一,導致(zhi)嚴xian)氐乃櫧  侍猓 yi)Google在2015的IO大會上(shang)發布了系(xi)列的Material Design風格的控件。其中(zhong)ToolBar是替(ti)代ActionBar的控件。後面我們也會簡(jian)述ToolBar的簡(jian)單用法。

About IT165 -廣告服(fu)務 -隱私聲明 -版權申明 -免責條款(kuan) -五福彩官网網(wang)站地(di)圖 -網(wang)友(you)投稿(gao) -江苏11选5官网聯(lian)系(xi)方式
本(ben)站內容來自(zi)于互聯(lian)網(wang),僅供用于網(wang)絡技術學習(xi),學習(xi)中(zhong)請遵循相關(guan)法律法規
买彩网官网 | 下一页