我是android的新手。我正在使用一些文本和图像测试TabView
。图像显示但文字没有。 android SDK版本是4.4.3。帮我找到它。我看了很多其他的地方,但没有一个适合我。
这是代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TabHost tabHost =(TabHost) findViewById(R.id.tabHost);
tabHost.setup();
TabHost.TabSpec spec=tabHost.newTabSpec("mitab1");
spec.setContent(R.id.tab1);
//spec.setIndicator("",getResources().getDrawable(android.R.drawable.ic_menu_rotate));
spec.setIndicator(prepareTabView("ABCD", R.drawable.talk));
TabHost.TabSpec spec1=tabHost.newTabSpec("mitab1");
spec1.setContent(R.id.tab2);
spec1.setIndicator(prepareTabView("CDEF", R.drawable.ball));
tabHost.addTab(spec);
tabHost.addTab(spec1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
private View prepareTabView(String text, int resId) {
View view = LayoutInflater.from(this).inflate(R.layout.tabcustom, null);
ImageView iv = (ImageView) view.findViewById(R.id.TabImageView);
TextView tv = (TextView) view.findViewById(R.id.TabTextView);
iv.setImageResource(resId);
tv.setText(text);
return view;
}
这是tabcustom.xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/TabLayout"
android:padding="5dip"
android:gravity="center"
android:orientation="vertical" >
<ImageView
android:id="@+id/TabImageView"
android:src="@drawable/football"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/TabTextView"
android:text="Text"
android:paddingTop="5dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff"
/>
答案 0 :(得分:0)
布局的方向为Vertical
,这就是为什么文字会显示在标签的底部&amp;如果选项卡背景颜色与文本颜色相同,则更改文本颜色。您可以使用以下代码显示带有背景图像的中心文本。
更改xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/TabLayout"
android:padding="5dip"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:id="@+id/TabTextView"
android:text="Text"
android:paddingTop="5dip"
android:layout_width="fill_parent"
android:gravity="center"
android:layout_height="wrap_content"
android:textColor="#ffffff"
/>
类别:
private View prepareTabView(String text, int resId) {
View view = LayoutInflater.from(this).inflate(R.layout.tabcustom, null);
LinearLayout iv = (LinearLayout) view.findViewById(R.id.TabLayout);
TextView tv = (TextView) view.findViewById(R.id.TabTextView);
iv.setImageResource(resId);
tv.setText(text);
return view;}