gpt4 book ai didi

android - 选项卡下的 strip 未绘制

转载 作者:搜寻专家 更新时间:2023-11-01 09:08:24 25 4
gpt4 key购买 nike

在我的 Activity 中,我这样做是为了设置 TabHost:

//...     
mTabHost = (TabHost) findViewById(android.R.id.tabhost);
mTabHost.getTabWidget().setDividerDrawable(R.drawable.my_divider_tab);
mTabHost.getTabWidget().setStripEnabled(true);
mTabHost.getTabWidget().setLeftStripDrawable(R.drawable.my_strip_tab);
mTabHost.getTabWidget().setRightStripDrawable(R.drawable.my_strip_tab);
setupTab(new TextView(this), getString(R.string.device_text_tab));
setupTab(new TextView(this), getString(R.string.sensor_text_tab));
setupTab(new TextView(this), getString(R.string.actuator_text_tab));
//...

private void setupTab(final View view, final String tag) {

View tabview = createTabView(mTabHost.getContext(), tag);
TabSpec setContent = mTabHost.newTabSpec(tag).setIndicator(tabview).setContent(new TabContentFactory() {
public View createTabContent(String tag) {return view;}
});
mTabHost.addTab(setContent);
}

private static View createTabView(final Context context, final String text) {

View view = LayoutInflater.from(context).inflate(R.layout.state_tabwidget, null);
TextView tv = (TextView) view.findViewById(R.id.tabsText);
tv.setText(text);
return view;
}

my_strip_tab.xml 只是一个矩形:

<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">

<solid
android:color="#FFFFFF"/>

<size
android:width="0dp"
android:height="2dp"/>
</shape>

绘制垂直分隔线。但是标签下的 strip 没有显示...

可能是什么问题? my_strip_tab 的大小?

我刚刚发现:

/**
* Controls whether the bottom strips on the tab indicators are drawn or
* not. The default is to draw them. If the user specifies a custom
* view for the tab indicators, then the TabHost class calls this method
* to disable drawing of the bottom strips.
* @param stripEnabled true if the bottom strips should be drawn.
*/

此处:TabWidgetExample

所以看起来当我们为选项卡使用自定义 View 时(就像我正在做的那样), strip 会自动禁用...如何启用它?

最佳答案

你唯一要做的就是移动这 block 代码

    mTabHost.getTabWidget().setStripEnabled(true);
mTabHost.getTabWidget().setLeftStripDrawable(R.drawable.my_strip_tab);
mTabHost.getTabWidget().setRightStripDrawable(R.drawable.my_strip_tab);

在你所有的 setupTab() 之后

如果您查看 Google 文档,原因是当您为选项卡指示器使用自定义 View 时,将自动调用 setStripEnabled(false)。您只需在设置所有自定义 View 或选项卡指示器后再次重新启用它。

关于android - 选项卡下的 strip 未绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10124973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com