日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自定义TabHost,TabWidget样式 .

發布時間:2025/4/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自定义TabHost,TabWidget样式 . 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,今天我為大家分享TabHost中怎樣修改TabWidget樣式。在很多界面美觀的應用中很多都用到了TabHost,但他們要比系統默認的要漂亮得多。先看幾張圖:

?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?京東商城底部菜單欄

? ? ? ? ? ? ? ? ? ? ? ? ? ? 新浪微博底部菜單欄

? ?好了,看到這些漂亮的菜單欄是不是很驚訝,你可能會說用Button就可以實現啊 ,可是用Button的話控制顯示的內容很麻煩,不如用TabHost控制效率更高。很想知道用TabHost是怎么實現的吧,下面就來研究如何實現這種漂亮的TabHost。先看一下效果圖:

?

界面比較簡單,要想做得漂亮換幾張圖片就可以了。

? 第一步:先在布局(這里用了main.xml創建時自動生成的)里面放上TabHost ,只要將TabHost控件托至屏幕中就可:

[html]?view plaincopy
  • <?xml?version="1.0"?encoding="utf-8"?>??
  • ????<TabHost?android:id="@+id/tabhost"???
  • ??????android:layout_width="fill_parent"???
  • ??????android:layout_height="fill_parent"???
  • ??????xmlns:android="http://schemas.android.com/apk/res/android">??
  • ????????<LinearLayout?android:layout_width="fill_parent"???
  • ??????????android:id="@+id/linearLayout1"???
  • ??????????android:layout_height="fill_parent"???
  • ??????????android:orientation="vertical">??
  • ????????????<TabWidget?android:layout_width="fill_parent"???
  • ??????????????android:layout_height="wrap_content"???
  • ??????????????android:id="@android:id/tabs"></TabWidget>??
  • ????????????<FrameLayout?android:layout_width="fill_parent"?android:layout_height="fill_parent"?android:id="@android:id/tabcontent">??
  • ????????????????<LinearLayout?android:layout_width="fill_parent"?android:layout_height="fill_parent"?android:id="@+id/tab1"></LinearLayout>??
  • ????????????????<LinearLayout?android:layout_width="fill_parent"?android:layout_height="fill_parent"?android:id="@+id/tab2"></LinearLayout>??
  • ????????????????<LinearLayout?android:layout_width="fill_parent"?android:layout_height="fill_parent"?android:id="@+id/tab3"></LinearLayout>??
  • ????????????</FrameLayout>??
  • ????????</LinearLayout>??
  • ????</TabHost>??

  • 這里我們已經把LinearLayout和TextView去掉了,并將“xmlns:android="……" ”添加大TabHost里了,這里要注意我們將TabHost的id定義為自己定義的id比不用android規定的id="@android:id/tabhost"。

    ?

    第二步:創建顯示此TabWidget的布局tabmini.xml:

    [html]?view plaincopy
  • <?xml?version="1.0"?encoding="utf-8"?>??
  • <RelativeLayout?xmlns:android="http://schemas.android.com/apk/res/android"????
  • ????android:layout_width="fill_parent"??
  • ????android:layout_height="40dp"??
  • ????android:paddingLeft="5dip"??
  • ????android:paddingRight="5dip"??
  • ????android:background="@drawable/head_bg">????
  • ??????
  • ????<TextView?android:id="@+id/tab_label"????
  • ????????android:layout_width="fill_parent"??
  • ????????android:layout_height="wrap_content"??
  • ????????android:layout_centerInParent="true"??
  • ????????android:gravity="center"??
  • ????????android:textColor="#000000"??
  • ????????android:textStyle="bold"??
  • ????????android:background="@drawable/tabmini"/>???
  • </RelativeLayout>??

  • 第三步:創建一個selector在drawable里面 命名tabmini.xml,用來點擊TabHost的一個tab時TextView的變化:

    [html]?view plaincopy
  • <?xml?version="1.0"?encoding="utf-8"?>??
  • <selector??
  • ??xmlns:android="http://schemas.android.com/apk/res/android">??
  • ????<item?android:state_selected="true"??
  • ????????android:drawable="@drawable/add_managebg_down"/>??
  • ????<item?android:state_selected="false"??
  • ????????android:drawable="@drawable/add_managebg"/>??
  • </selector>??

  • 第四步:在Activity里實現TabHost:

    [java]?view plaincopy
  • package?cn.li.tabstyle;??
  • ??
  • import?android.app.Activity;??
  • import?android.os.Bundle;??
  • import?android.view.LayoutInflater;??
  • import?android.view.View;??
  • import?android.widget.TabHost;??
  • import?android.widget.TextView;??
  • ??
  • public?class?TabHostStyleActivity?extends?Activity?{??
  • ????/**?Called?when?the?activity?is?first?created.?*/??
  • ????@Override??
  • ????public?void?onCreate(Bundle?savedInstanceState)?{??
  • ????????super.onCreate(savedInstanceState);??
  • ????????setContentView(R.layout.main);??
  • ??????????
  • ????????View?niTab?=?(View)?LayoutInflater.from(this).inflate(R.layout.tabmini,?null);??
  • ????????TextView?text0?=?(TextView)?niTab.findViewById(R.id.tab_label);??
  • ????????text0.setText("ni");??
  • ??????????
  • ????????View?woTab?=?(View)?LayoutInflater.from(this).inflate(R.layout.tabmini,?null);??
  • ????????TextView?text1?=?(TextView)?woTab.findViewById(R.id.tab_label);??
  • ????????text1.setText("wo");??
  • ??????????
  • ????????View?taTab?=?(View)?LayoutInflater.from(this).inflate(R.layout.tabmini,?null);??
  • ????????TextView?text2?=?(TextView)?taTab.findViewById(R.id.tab_label);??
  • ????????text2.setText("ta");??
  • ??????????
  • ????????View?weTab?=?(View)?LayoutInflater.from(this).inflate(R.layout.tabmini,?null);??
  • ????????TextView?text3?=?(TextView)?weTab.findViewById(R.id.tab_label);??
  • ????????text3.setText("we");??
  • ??????????
  • ????????TabHost?tabHost?=?(TabHost)findViewById(R.id.tabhost);??
  • ????????tabHost.setup();???//Call?setup()?before?adding?tabs?if?loading?TabHost?using?findViewById().???
  • ??????????
  • ????????tabHost.addTab(tabHost.newTabSpec("nitab").setIndicator(niTab).setContent(R.id.tab1));??
  • ????????tabHost.addTab(tabHost.newTabSpec("wotab").setIndicator(woTab).setContent(R.id.tab2));??
  • ????????tabHost.addTab(tabHost.newTabSpec("tatab").setIndicator(taTab).setContent(R.id.tab3));??
  • ????????tabHost.addTab(tabHost.newTabSpec("wetab").setIndicator(weTab).setContent(R.id.tab4));??
  • ????}??
  • }??

  • 這里我們用findViewById創建了TabHost,這樣的話我們就需要在添加tab時調用TabHost的setup()方法;這里我們添加內容時添加的是布局,我們完全可以換成自己創建的Activity。

    好了,讓我們來看看運行效果吧:

    ?



    好了,我們自定義的TabHost算是結束了。不過看到Activity里的代碼很多都是重復的我們可以這樣把他們簡化:

    [java]?view plaincopy
  • package?cn.li.tabstyle;??
  • ??
  • import?android.app.Activity;??
  • import?android.os.Bundle;??
  • import?android.view.LayoutInflater;??
  • import?android.view.View;??
  • import?android.widget.TabHost;??
  • import?android.widget.TextView;??
  • ??
  • public?class?TabHostStyleActivity?extends?Activity?{??
  • ????/**?Called?when?the?activity?is?first?created.?*/??
  • ????String[]?title?=?new?String[]{"ni","wo","ta","we"};??
  • ????View?userTab,articeTab,feedTab,weTab;??
  • ????View[]?tabs?=?new?View[]{userTab,articeTab,feedTab,weTab};??
  • ????int[]?tabIds?=?new?int[]{R.id.tab1,R.id.tab2,R.id.tab3,R.id.tab4};??
  • ????@Override??
  • ????public?void?onCreate(Bundle?savedInstanceState)?{??
  • ????????super.onCreate(savedInstanceState);??
  • ????????setContentView(R.layout.main);??
  • ??????????
  • ????????TabHost?tabHost?=?(TabHost)findViewById(R.id.tabhost);??
  • ????????tabHost.setup();???//Call?setup()?before?adding?tabs?if?loading?TabHost?using?findViewById().???
  • ??????????
  • ????????for(int?i=0;i<tabs.length;i++){??
  • ????????????tabs[i]?=?(View)?LayoutInflater.from(this).inflate(R.layout.tabmini,?null);??
  • ????????????TextView?text?=?(TextView)?tabs[i].findViewById(R.id.tab_label);??
  • ????????????text.setText(title[i]);??????????????
  • ????????????tabHost.addTab(tabHost.newTabSpec(title[i]).setIndicator(tabs[i]).setContent(tabIds[i]));??
  • ????????}??
  • ????}??
  • }??

  • ?

    轉載于:https://www.cnblogs.com/firecode/archive/2012/12/13/2815960.html

    總結

    以上是生活随笔為你收集整理的自定义TabHost,TabWidget样式 .的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 免费av网页 | 日日干日日射 | 亚洲综合网址 | 岛国av片| 国产十区| 国产精选在线观看 | 久草免费看 | 国产成人黄色av | 成人av久久 | 色人阁婷婷 | 欧美精品一级 | 青青草视频免费看 | 欧美日本一道本 | 欧美一区不卡 | 人人舔人人干 | 日韩欧美日本 | 精品乱码一区二区三区 | 国产午夜视频在线观看 | 大肉大捧一进一出好爽视频 | 色男人天堂av | 久久av一区二区三区 | 欧美人妖69xxxxxhd3d | 亚洲三级小视频 | av有码在线 | 亚洲黄色av| 成人软件在线观看 | 巨大乳の揉んで乳榨り奶水 | 99热官网| 美女网站视频在线观看 | 国产黄在线播放 | 国产一区二区三区 | 国产操视频| 午夜av免费观看 | 欧美 日韩 视频 | 男女激情四射网站 | 一区二区三区四区视频 | 久久婷婷网站 | 久久久久人 | 一本一道久久综合狠狠老精东影业 | 国产欧美精品一区二区在线播放 | 久久婷五月天 | 伊人网综合在线 | 黄色网页免费在线观看 | 实拍澡堂美女洗澡av | 国产黄色大片视频 | 精品国产免费视频 | 久久不卡视频 | 午夜在线免费观看 | 成年人在线免费观看网站 | 日本美女视频一区 | 国产欧美精品区一区二区三区 | 粉嫩久久99精品久久久久久夜 | 69人人| 欧美性猛交一区二区三区精品 | 中文字幕一区二区三区视频 | 久久久久亚洲av片无码 | 精品国产午夜福利在线观看 | 成人福利在线免费观看 | 樱桃成人精品视频在线播放 | av手机在线看| 少妇做爰免费视频播放 | 久久精品国产av一区二区三区 | 99热成人 | 久久伊人久久 | 欧美中文字幕第一页 | 国产精品久久网站 | 国产综合网站 | 日韩成人在线观看 | 少妇无内裤下蹲露大唇视频 | 亚欧在线 | 制服丝袜成人动漫 | 亚洲精品字幕 | 欧美女优在线 | 色婷婷激情av | 毛片网站大全 | 国产做爰全过程免费视频 | 国产老肥熟 | 国产精品123 | 日韩黄色精品 | 精品在线观看一区 | 国模在线 | 天天色视频 | 播播开心激情网 | 中文字幕乱码中文字幕 | 东北少妇不带套对白 | 日本三级黄在线观看 | 51人人看 | 在线免费观看黄网 | 久久99精品久久久久久园产越南 | 亚洲 国产 欧美 日韩 | 日穴| 久久久.com | 久久三区| 久久久久久激情 | 三级黄片毛片 | 国产性xxxx高清| 91蝌蚪少妇| 亚洲一区二区三区高清视频 | 在线91av |