我一整天都在谷歌搜索,但似乎无法找到答案。这应该很简单。
我的活动包含一个由选项卡式控件(TabHost,TabWidgets等)组成的片段。每个选项卡上都有一个简单的滚动TextView。我们的想法是让一些标签包含用户可以滚动浏览的不同类别的文本。我已经能够设置标签等,但有两个我似乎无法解决的问题。
1)我无法弄清楚如何以编程方式更改选项卡TextView的内容(来自拥有该片段的Activity)。我已经尝试在我的主机活动中创建一个FragmentManager,找到片段,将片段转换为我的片段类,然后调用片段类中应该更改文本的函数。这个功能只是这样做:
TextView textView = (TextView)tabHost.getTabWidget().getChildAt(tabNumber).findViewById(R.id.dashboard_fragment_4_textView);
if(textView!=null) textView.setText(text);
这不起作用; textView始终返回null。
2)我相信布局问题。每个选项卡上的我的TextView不会填充父项;它只是包装文本内容。这不是什么大问题,但我希望TextView可用的整个屏幕区域具有特定的背景颜色。也许有更好的方法来处理这个???就像让TextView的背景透明,然后在TextView后面有一些正确的颜色?我不知道......我到了。
以下是每个标签的xml布局:
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tabHost"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TabWidget android:id="@android:id/tabs"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:gravity="left"
android:layout_weight="0" />
<FrameLayout android:id="@android:id/tabcontent"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="1">
<ScrollView
android:id="@+id/dashboard_fragment_4_scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/dashboard_fragment_4_textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/Linen"
android:textColor="@color/Black"
android:textSize="20dp"
android:text="TextView" />
</ScrollView>
</FrameLayout>
</LinearLayout>
感谢您的任何建议!!
布赖恩
答案 0 :(得分:0)
显然,它应该是tabs.getTabContentView()而不是tabHost.getTabWidget()