0

当我将视图用作 tabSpec 指示器时,无论是否选择选项卡,视图都是相同的。

有什么方法可以使用不同的视图,比如当我们为选定的选项卡使用不同的可绘制(选择器)时?

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

这是我的代码:

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。

4

1 回答 1

2

您想要做的是在您的视图/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的更多信息

于 2012-05-17T17:11:28.357 回答