使用TabHost布局中的不需要的边距

时间:2012-04-21 19:42:31

标签: android-layout android-tabhost

我是Android开发的新版本,但我确实认为我能够快速发展。我一直在重新为我的垒球队制作一个应用程序。以前我使用过Google的App Inventor,但是它遇到了很多缺点,所以我现在正试图用Eclipse重新编写它。

无论如何,到了这一点。我似乎在我的LinearLayout中添加了一些多余的填充,我不知道它来自哪里。

我正在使用TabHost在顶部创建标签(Google的标签示例的修改版本)。

布局XML:

<?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="match_parent"
  android:layout_height="match_parent"
  >

    <TabHost 
        android:id="@android:id/tabhost"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >

            <RelativeLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/background"
                >        

                <!-- Allow the "Tabs" to scroll horizontally -->
                <HorizontalScrollView 
                    android:layout_width="match_parent" 
                    android:layout_height="match_parent" 
                    android:fillViewport="true" 
                    android:scrollbars="none" 
                    >

                    <!-- The "Tabs" widget -->
                    <TabWidget
                        android:id="@android:id/tabs"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" 
                        android:background="#000000"
                        />

                </HorizontalScrollView>

                <!-- Provide the "Content" the ability to vertically scroll -->
                <ScrollView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginTop="65dp"
                    >
                    <FrameLayout
                        android:id="@android:id/tabcontent"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        >
                        <LinearLayout
                            android:id="@+id/tabdata"
                            android:orientation="vertical"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                             >
                         </LinearLayout>
                    </FrameLayout>
                </ScrollView>
            </RelativeLayout>
    </TabHost>
</LinearLayout>

我认为问题与ScrollView中的android:layout_marginTop="65dp"有关,但如果我删除它,我的标签就会消失(我假设我的标签只是覆盖在它的顶部)。

最后,这是一个屏幕截图,显示了我正在经历的一个例子(Disreguard the XML string,我仍然需要按摩该部分。我只想展示一个数据示例。)。 http://kahunaball.com/android/screenshot_0.jpg

1 个答案:

答案 0 :(得分:0)

从头开始执行XML并向前迈出一小步之后,我能够重新处理XML并从布局中解决多余的填充。

我并非100%确定哪些更改有所不同,但我怀疑是将RelativeLayout更改为LinearLayout并将LinearLayoutTableLayout移到FrameLayout就是诀窍。

对于其他可能偶然发现并希望看到我的新XML解决问题的人,请点击此处:

<?xml version="1.0" encoding="utf-8"?>
<TabHost 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <LinearLayout 
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/background">
        <HorizontalScrollView 
            android:layout_width="match_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"
                android:background="#000000" />
        </HorizontalScrollView>
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
            <HorizontalScrollView 
                android:layout_width="match_parent" 
                android:layout_height="wrap_content" 
                android:fillViewport="true" 
                android:scrollbars="none" >
                <FrameLayout 
                    android:id="@android:id/tabcontent"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent" >
                    <LinearLayout
                        android:id="@+id/tabdata"
                        android:orientation="vertical"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:gravity="center_horizontal" />
                    <TableLayout
                        android:id="@+id/myTableLayout"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:background="#33B5E5" />
                </FrameLayout>
            </HorizontalScrollView>
        </ScrollView>
  </LinearLayout>
</TabHost>