好的,这就是这个想法;我想创建一组图标,这些图标会在我的应用程序上的所有活动中保留在屏幕底部。我想到的第一件事就是TabWidget。
在我花了一些时间之后,我意识到我无法从标签上获得“聚焦状态”,我知道标签应该按照这种方式运行,但我的想法是让这些标签看起来像图标 - 它看起来不应该像他们一直关注的那样。
我尝试使用tabHost.setBackgroundColor(color)
,但不幸的是它没有按照我的预期发挥作用。
这里有一些可视化来缓解问题.. http://i.stack.imgur.com/uF7fu.png
p.s。,抱歉链接。作为新用户,我不允许直接在帖子上发布图片。
答案 0 :(得分:1)
执行此操作的一种方法是使用自定义Selector
表示相同的选项卡状态,无论选项卡是否具有焦点。这可能看起来像这样:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Non focused states -->
<item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected" />
<item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_unselected" />
<!-- Focused states -->
<item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected" />
<item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_unselected" />
<!-- Pressed -->
<item android:state_pressed="true" android:drawable="@drawable/tab_press" />
</selector>
您可以将它添加到您的drawable目录,然后配置您的tabwidget以在您的活动中使用它(如此):
TabWidget tabWidget = getTabWidget();
for(int i = 0; i < tabWidget.getChildCount(); i++) {
RelativeLayout tabLayout = (RelativeLayout) tabWidget.getChildAt(i);
tabLayout.setBackgroundDrawable(res.getDrawable(R.drawable.tab_indicator));
}
更详细的指南是here。看看它是否适合你。
答案 1 :(得分:0)
一般情况下,您应该有一个“聚焦状态”来指示没有触摸屏的设备(即Google TV)的活动状态,或者为视障人士提供辅助工具。如果您仍想沿着隐藏“聚焦状态”的路线走下去,请参阅Femi关于自定义选择器的答案。
答案 2 :(得分:0)
修改像Femi节目这样的选定风格是这样做的方法..