1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > android 中使用TabHost控件实现微信界面的底部菜单效果

android 中使用TabHost控件实现微信界面的底部菜单效果

时间:2020-09-18 22:41:56

相关推荐

android 中使用TabHost控件实现微信界面的底部菜单效果

首先,在布局文件中的代码如下:(菜单位于底部,需要在代码中设置)

<TabHostandroid:id="@android:id/tabhost"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_alignParentLeft="true"android:layout_alignParentTop="true" ><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><FrameLayoutandroid:id="@android:id/tabcontent"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"></FrameLayout><TabWidgetandroid:id="@android:id/tabs"android:layout_width="match_parent"android:layout_height="60dp"android:layout_weight="0"android:background="@drawable/bottom_bar"></TabWidget></LinearLayout></TabHost>

其次,分别作四个菜单选项的selector文件。状态为选中和默认:

<selector xmlns:android="/apk/res/android" ><item android:state_selected="true" android:drawable="@drawable/tab_weixin_pressed"></item><item android:drawable="@drawable/tab_weixin_normal"></item></selector>

注意:处于选中状态的菜单,底部还会有个发光的背景,也是将背景设置为selector,代码如下:

<selector xmlns:android="/apk/res/android" ><item android:state_selected="true" android:drawable="@drawable/tab_bg"></item></selector>

再次,在代码中得到tabhost对象,并设置对应的四个不同的tab页,代码如下:

public class MainActivity extends android.app.TabActivity{//继承TabActivityString[] name = {"微信","通讯录","朋友们","设置"};//写好四个selector文件,内容为选中状态和默认状态时的图片int[] imaResid = {R.drawable.selector_tab1,R.drawable.selector_tab2,R.drawable.selector_tab3,R.drawable.selector_tab4};ArrayList<TabSpec> arrayList = new ArrayList<TabHost.TabSpec>();@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_tab);TabHost tabHost = getTabHost();for (int i = 0; i < 4; i++){//复用布局,创建四个View的对象,并且分别设置View对象里的控件值和图片View tabrl = getLayoutInflater().inflate(R.layout.tab_item, null);TextView tv_name = (TextView) tabrl.findViewById(R.id.tv_name);tv_name.setText(name[i]);ImageView iv_icon = (ImageView) tabrl.findViewById(R.id.iv_icon);iv_icon.setImageResource(imaResid[i]);TabSpec spec = tabHost.newTabSpec("tab" + i).setIndicator(tabrl);arrayList.add(spec);}tabHost.addTab(arrayList.get(0).setContent(new Intent(MainActivity.this,Tab1Activity.class)));tabHost.addTab(arrayList.get(1).setContent(new Intent(MainActivity.this,Tab2Activity.class)));tabHost.addTab(arrayList.get(2).setContent(new Intent(MainActivity.this,Tab3Activity.class)));tabHost.addTab(arrayList.get(3).setContent(new Intent(MainActivity.this,Tab4Activity.class)));}@Overridepublic boolean onCreateOptionsMenu(Menu menu){// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.tab, menu);return true;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。