Android:为标签和处理器状态使用不同的视图

时间:2012-05-17 16:59:47

标签: android view tabs state

当我使用视图作为tabSpec指示符时,选择或不选择选项卡时视图是相同的。

有没有办法使用不同的视图,例如当我们为所选标签使用不同的drawable(选择器)时?

我已经尝试过使用选择器,但它只允许更改图标。我想要的是使用自定义视图,仍然可以为不同的选项卡状态使用不同的视图。

这是我的代码:

View profilInd = getLayoutInflater().inflate(R.layout.tabs_profil_layout, null);
Intent profilIntent = new Intent(this, MyProfilActivity.class);
tabHost.addTab(tabHost.newTabSpec("profil").setIndicator(profilInd).setContent(profilIntent));

tabs_profil_layout布局是一个带有ImageView和TextView的简单LinearLayout。

1 个答案:

答案 0 :(得分:2)

您要做的是在view / drawable中使用一个选择器,它将在所选状态和未选择状态之间切换。

此问题涵盖了一些类似主题:Android : Customizing tabs on state : How do I make a selector a drawable

基本上你会创建一个类似于这样的可绘制资源:

 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true"
           android:drawable="@drawable/button_pressed" /> <!-- pressed -->
     <item android:state_focused="true"
           android:drawable="@drawable/button_focused" /> <!-- focused -->
     <item android:drawable="@drawable/button_normal" /> <!-- default -->
 </selector>

然后您将分配给选项卡。

您可以详细了解选择器和Drawable here.