gpt4 book ai didi

android-fragments - 具有水平滚动的FragmentTabHost

转载 作者:行者123 更新时间:2023-12-04 05:07:41 25 4
gpt4 key购买 nike

我试图建立一个FragmentTabHost并使它水平可滚动。我一直在寻找解决方案,但找不到任何东西,所有帖子都关于普通的TabHost。

我正在使用androidt网站上针对FragmentTabHost所述的支持库

我的布局是:

<android.support.v4.app.FragmentTabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:tag="trip_entry_tab"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0"/>
<FrameLayout
android:id="@+id/realtabcontent"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>

已经尝试将tabwidget嵌套到水平滚动 View 中(这是我可以在其他文章中找到的解决方案,但始终适用于TabHost,而不适用于FragmentTabHost),但没有任何变化:
<HorizontalScrollView
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="wrap_content"
android:layout_height="wrap_content" >
</TabWidget>
</HorizontalScrollView>

我的标签缩了缩,看起来真的很不好看。是否有人使片段标签主机可滚动?

谢谢

最佳答案

根据我的经验,FragmentTabHost不太在乎xml定义,因此必须以编程方式进行。我通过从xml中删除HorizontalScrollView并将其添加到onCreate的我的FragmentActivity中来使其工作。

xml:

<android.support.v4.app.FragmentTabHost xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" />

<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0" />

<FrameLayout
android:id="@+id/realtabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1" />
</LinearLayout>

</android.support.v4.app.FragmentTabHost>

然后在添加选项卡之后(也以编程方式)在onCreate中:
TabWidget tw = (TabWidget) findViewById(android.R.id.tabs);
LinearLayout ll = (LinearLayout) tw.getParent();
HorizontalScrollView hs = new HorizontalScrollView(this);
hs.setLayoutParams(new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.MATCH_PARENT,
FrameLayout.LayoutParams.WRAP_CONTENT));
ll.addView(hs, 0);
ll.removeView(tw);
hs.addView(tw);
hs.setHorizontalScrollBarEnabled(false);

不知道这是否是最优雅的解决方案,但它似乎可以正常工作。

关于android-fragments - 具有水平滚动的FragmentTabHost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14598819/

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