TabWidged 上的 Horizo​​natalScrollView“窃取”空间

发布于 2024-12-02 17:14:50 字数 1713 浏览 2 评论 0原文

我有一个 TabActivity,底部有自定义 TabWidgets。我希望能够添加超过 5 个选项卡。与动态添加“更多”按钮的菜单栏不同,选项卡只是调整大小并且看起来很糟糕。所以我的第一次尝试是将 TabWidget 包装到 Horizo​​ntalScrollView 中。问题是,我有一个 ListView 作为 TabContent,它的最后一项似乎隐藏在我的 TabWidgets 后面。 这是我的 TabView 的布局,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/main_linlay_parent"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
  <TabHost 
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <RelativeLayout
      android:id="@+id/main_tablinear"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
      <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentTop="true"
        android:layout_above="@android:id/tabs"/>
      <HorizontalScrollView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:scrollbars="none"
        android:layout_alignParentBottom="true">
        <TabWidget
          android:id="@android:id/tabs"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:layout_gravity="center"/>
      </HorizontalScrollView>
    </RelativeLayout>
  </TabHost>
</LinearLayout>

我在布局中做错了什么吗?有没有更好的方法来应用 4 个以上的选项卡?虽然我可以看到 4 Tabs 在 Nexus-S 上表现良好,但我认为它们在 Wildfire 上已经很丑了。任何想法表示赞赏

I have an TabActivity with custom TabWidgets at the bottom. I want to be able to add more than 5 Tabs. Unlike the MenuBar, which adds a "more" button dynamically, Tabs are just resized and look horribly. So my first attempt was to wrap my TabWidgets into a HorizontalScrollView. The problem is, that I have a ListView as TabContent and its last item seems to be hidden behind my TabWidgets.
This is the Layout for my TabView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/main_linlay_parent"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
  <TabHost 
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <RelativeLayout
      android:id="@+id/main_tablinear"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
      <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentTop="true"
        android:layout_above="@android:id/tabs"/>
      <HorizontalScrollView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:scrollbars="none"
        android:layout_alignParentBottom="true">
        <TabWidget
          android:id="@android:id/tabs"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:layout_gravity="center"/>
      </HorizontalScrollView>
    </RelativeLayout>
  </TabHost>
</LinearLayout>

am I doing something wrong in my Layout? Are there better ways to apply more than 4 Tabs? While I can see 4 Tabs good with my Nexus-S, I'm thinking they are already ugly on a Wildfire. Any idea appreciated

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

山田美奈子 2024-12-09 17:14:50

试试这个。它对我有用:

代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
<TabHost android:layout_weight="1" android:id="@android:id/tabhost"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:orientation="vertical">
        <HorizontalScrollView android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <LinearLayout android:layout_height="fill_parent"
                android:orientation="horizontal" android:layout_width="fill_parent">
                <TabWidget android:layout_height="wrap_content"
                    android:id="@android:id/tabs" android:isScrollContainer="true"
                    android:layout_width="fill_parent" android:scrollbars="horizontal"></TabWidget>
            </LinearLayout>
        </HorizontalScrollView>
        <FrameLayout android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:id="@android:id/tabcontent">
            <LinearLayout android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:id="@+id/tab1"></LinearLayout>
            <LinearLayout android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:id="@+id/tab2"></LinearLayout>
            <LinearLayout android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:id="@+id/tab3"></LinearLayout>
            <LinearLayout android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:id="@+id/tab4"></LinearLayout>
            <LinearLayout android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:id="@+id/tab5"></LinearLayout>
        </FrameLayout>
    </LinearLayout>
</TabHost></LinearLayout>

Try this. It worked for me:

Code:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
<TabHost android:layout_weight="1" android:id="@android:id/tabhost"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:orientation="vertical">
        <HorizontalScrollView android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <LinearLayout android:layout_height="fill_parent"
                android:orientation="horizontal" android:layout_width="fill_parent">
                <TabWidget android:layout_height="wrap_content"
                    android:id="@android:id/tabs" android:isScrollContainer="true"
                    android:layout_width="fill_parent" android:scrollbars="horizontal"></TabWidget>
            </LinearLayout>
        </HorizontalScrollView>
        <FrameLayout android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:id="@android:id/tabcontent">
            <LinearLayout android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:id="@+id/tab1"></LinearLayout>
            <LinearLayout android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:id="@+id/tab2"></LinearLayout>
            <LinearLayout android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:id="@+id/tab3"></LinearLayout>
            <LinearLayout android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:id="@+id/tab4"></LinearLayout>
            <LinearLayout android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:id="@+id/tab5"></LinearLayout>
        </FrameLayout>
    </LinearLayout>
</TabHost></LinearLayout>
鸩远一方 2024-12-09 17:14:50

我自己解决了我的问题!我认为其他用户查看解决方案可能会有所帮助:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/main_linlay_parent"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
  <TabHost 
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <RelativeLayout
      android:id="@+id/main_tablinear"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
      <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentTop="true"
        android:layout_above="@android:id/tabs"
        android:layout_marginBottom="50dip"/>
        <!-- note: margin bottom 50 dip above: 
           its exactly the size of my custom TabWidget  -->
      <HorizontalScrollView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:scrollbars="none"
        android:layout_alignParentBottom="true">
        <TabWidget
          android:id="@android:id/tabs"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:layout_gravity="center"/>
      </HorizontalScrollView>
    </RelativeLayout>
  </TabHost>
</LinearLayout>

I solved my problem myself! I think it can be helpful for other users to see the soltution:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/main_linlay_parent"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
  <TabHost 
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <RelativeLayout
      android:id="@+id/main_tablinear"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
      <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentTop="true"
        android:layout_above="@android:id/tabs"
        android:layout_marginBottom="50dip"/>
        <!-- note: margin bottom 50 dip above: 
           its exactly the size of my custom TabWidget  -->
      <HorizontalScrollView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:scrollbars="none"
        android:layout_alignParentBottom="true">
        <TabWidget
          android:id="@android:id/tabs"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:layout_gravity="center"/>
      </HorizontalScrollView>
    </RelativeLayout>
  </TabHost>
</LinearLayout>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文