如何更改 Tabhost 中 Tabs 的测试大小?
How to change test size of Tabs in a Tabhost?
如何更改选项卡标签的文字大小。我知道有很多类似的问题,但我是 android 平台的新手,没有使用 android.support.design.widget.TabLayout。 Whosebug 或其他站点中有关此问题的每个示例都包含 TableLayout。我如何使用 Tabhost 解决这个问题?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.mobiders.activity.MainActivity"
tools:showIn="@layout/app_bar_main">
<TabHost
android:id="@+id/tab_host"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<HorizontalScrollView
android:id="@+id/hscrollview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:scrollbars="none">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</HorizontalScrollView>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/tab1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"></ListView>
</FrameLayout>
</LinearLayout>
</TabHost>
<FrameLayout
android:id="@+id/fl_interceptor"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="blocksDescendants" />
<include
layout="@layout/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
tools:layout_editor_absoluteY="0dp" />
</RelativeLayout>
您可以通过编程方式执行此操作。在您使用 tabhost 的 activity 中,使用以下代码
TabHost tabhost = getTabHost();
for(int i=0;i<tabhost.getTabWidget().getChildCount();i++)
{
TextView tv = (TextView) tabhost.getTabWidget().getChildAt(i).findViewById(android.R.id.title);
int textSize = 14;
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP,textSize );
}
然后,在选项卡更改时,您可以使用以下代码更改文本大小:
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
TextView tv = (TextView) tabhost.getTabWidget().getChildAt(i).findViewById(android.R.id.title); //Unselected Tabs
int textSize = 14;
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP,textSize );
}
TextView tv = (TextView) tabhost.getCurrentTabView().findViewById(android.R.id.title); //for Selected Tab
int textSize2 = 14;
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP,textSize2);
}
});
如何更改选项卡标签的文字大小。我知道有很多类似的问题,但我是 android 平台的新手,没有使用 android.support.design.widget.TabLayout。 Whosebug 或其他站点中有关此问题的每个示例都包含 TableLayout。我如何使用 Tabhost 解决这个问题?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.mobiders.activity.MainActivity"
tools:showIn="@layout/app_bar_main">
<TabHost
android:id="@+id/tab_host"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<HorizontalScrollView
android:id="@+id/hscrollview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:scrollbars="none">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</HorizontalScrollView>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/tab1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"></ListView>
</FrameLayout>
</LinearLayout>
</TabHost>
<FrameLayout
android:id="@+id/fl_interceptor"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="blocksDescendants" />
<include
layout="@layout/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
tools:layout_editor_absoluteY="0dp" />
</RelativeLayout>
您可以通过编程方式执行此操作。在您使用 tabhost 的 activity 中,使用以下代码
TabHost tabhost = getTabHost();
for(int i=0;i<tabhost.getTabWidget().getChildCount();i++)
{
TextView tv = (TextView) tabhost.getTabWidget().getChildAt(i).findViewById(android.R.id.title);
int textSize = 14;
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP,textSize );
}
然后,在选项卡更改时,您可以使用以下代码更改文本大小:
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
TextView tv = (TextView) tabhost.getTabWidget().getChildAt(i).findViewById(android.R.id.title); //Unselected Tabs
int textSize = 14;
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP,textSize );
}
TextView tv = (TextView) tabhost.getCurrentTabView().findViewById(android.R.id.title); //for Selected Tab
int textSize2 = 14;
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP,textSize2);
}
});