【问题标题】:Android: Use different views for tabs andicator statesAndroid:对标签指示器状态使用不同的视图
【发布时间】:2012-05-17 16:59:46
【问题描述】:

当我将视图用作 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。

【问题讨论】:

标签: android view tabs state


【解决方案1】:

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

然后您将分配给选项卡。

你可以了解更多关于选择器和Drawablehere.

【讨论】:

  • 您好,为您解答。我最终做的是: - 我创建了一个带有两个背景 png 文件的 selctor。 - 我创建了一个用作选项卡指示器的视图(上面的 java 代码没有改变)。在这个视图中,我有一个使用选择器作为背景的 LinearLayout。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多