Android Tabhost使用方法詳解_Android

來源:互聯網
上載者:User

Android 實現tab視圖有2種方法,一種是在布局頁面中定義<tabhost>標籤,另一種就是繼承tabactivity.但是我比較喜歡第二種方式,應為如果頁面比較複雜的話你的XML檔案會寫得比較龐大,用第二種方式XML頁面相對要簡潔得多。

下面是我的XML源碼:

<FrameLayout  xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  >  <ListView    android:id="@+id/journals_list_one"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:cacheColorHint="#FFFFFFFF"    android:scrollbars="vertical"    android:paddingTop="5dip"    android:paddingBottom="5dip"    android:paddingRight="5dip"    android:background="#FFFFFFFF"    android:listSelector="@drawable/list_item_selecter"    />  <ListView    android:id="@+id/journals_list_two"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:cacheColorHint="#FFFFFFFF"    android:scrollbars="vertical"    android:paddingTop="5dip"    android:paddingBottom="5dip"    android:paddingRight="5dip"    android:background="#FFFFFFFF"    />  <ListView    android:id="@+id/journals_list_three"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:cacheColorHint="#FFFFFFFF"    android:scrollbars="vertical"    android:paddingTop="5dip"    android:paddingBottom="5dip"    android:paddingRight="5dip"    android:background="#FFFFFFFF"    />  <ListView    android:id="@+id/journals_list_end"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:cacheColorHint="#FFFFFFFF"    android:scrollbars="vertical"    android:paddingTop="5dip"    android:paddingBottom="5dip"    android:paddingRight="5dip"    android:background="#FFFFFFFF"    /> </FrameLayout> 

這是JAVA源碼:

private TabHost tabHost; private ListView listView; private MyListAdapter adapter; private View footerView; private List<Map<String, String>> data = new ArrayList<Map<String, String>>(); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  tabHost = this.getTabHost();   LayoutInflater.from(this).inflate(R.layout.main,    tabHost.getTabContentView(), true);   tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("",    getResources().getDrawable(R.drawable.home)).setContent(    R.id.journals_list_one));  tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("",    getResources().getDrawable(R.drawable.activity)).setContent(    R.id.journals_list_two));  tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("",    getResources().getDrawable(R.drawable.community)).setContent(    R.id.journals_list_three));  tabHost.addTab(tabHost.newTabSpec("tab4").setIndicator("",    getResources().getDrawable(R.drawable.shop)).setContent(    R.id.journals_list_end));   tabHost.setCurrentTab(0);  setContentView(tabHost);  tabHost.setOnTabChangedListener(tabChangeListener);   showContent();  } 

 讓自己的類繼承TabActivity,然後通過調用getTabHost()方法得到tabhost對象,然後把自己寫好的資料展示的布局檔案載入到tabhost中,就可以實現了。最後是通過調用addTab()方法添加標籤的相關屬性(如:標籤名稱,標籤圖片,標籤內容布局)。

而如果通過XML檔案配置tabHost則需要注意的是,framelayout,tabwidge標籤的id都必須引用系統的id(@android:id/tabcontent,@android:id/tabs),不然會報異常.在程式用使用findViewById()載入tabhost,然後調用tabhost.setup()方法初始化tabhost,後面的步驟則和上面一種一樣,就不在說明。
以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.