如何将tableLayouts与中心对齐?

时间:2016-08-04 09:48:57

标签: android android-layout layout

更新2

horizo​​ntalscrollview被窃听,它削减了部分表格。

这是第一个表,滚动视图不会移动并切割第一个单元格。

enter image description here

它有Scroll的第二个表,但限制是错误的...... 向右滚动最大值。

enter image description here

向左滚动最大值会留下空白。

enter image description here

更新3

将确切的布局复制到另一个相似的片段并且不与中心对齐,但horizo​​ntalScroll工作正常。这种随机性正在扼杀我。

更新后的布局:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="acr.acr_app.MyFragment3">
<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/scrollView3" >

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="top|center">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/textCompresores"
                android:textSize="30dp"
                android:textStyle="bold"
                android:typeface="sans"
                android:id="@+id/textView12"
                android:layout_margin="30dp"
                android:stretchColumns="60dp"/>
        </LinearLayout>

        <Spinner
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/spinner1"
            android:layout_marginBottom="10dp"
            android:textStyle="bold"
            android:textAlignment="center">
        </Spinner>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center">

            <HorizontalScrollView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:scrollbars="none"
                android:fillViewport="true">
                <TableLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal|top"
                    android:stretchColumns="*"
                    android:id="@+id/tableLayout1">
                </TableLayout>
            </HorizontalScrollView>

            <HorizontalScrollView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:scrollbars="none"
                android:fillViewport="true">
                <TableLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal|top"
                    android:stretchColumns="*"
                    android:id="@+id/tableLayout2">
                </TableLayout>
            </HorizontalScrollView>
        </RelativeLayout>
    </LinearLayout>
</ScrollView>

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="acr.acr_app.MyFragment3">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/scrollView3" >

<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="top|center">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/text"
        android:textSize="30dp"
        android:textStyle="bold"
        android:typeface="sans"
        android:id="@+id/textView12"
        android:layout_margin="30dp"
        android:stretchColumns="60dp"/>
</LinearLayout>

<Spinner
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/spinner1"
    android:layout_marginBottom="10dp"
    android:textStyle="bold"
    android:textAlignment="center">
</Spinner>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center">

<HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scrollbars="none"
        android:fillViewport="true">
             <TableLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal|top"
                android:stretchColumns="*"
                android:id="@+id/tableLayout1">
            </TableLayout>
</HorizontalScrollView>

<HorizontalScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:scrollbars="none"
    android:fillViewport="true">
        <TableLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal|top"
            android:stretchColumns="*"
            android:id="@+id/tableLayout2">
        </TableLayout>
</HorizontalScrollView>

</RelativeLayout>
</LinearLayout>

在上面的代码中,我删除了LinearLayout的父项TableLayout,因为我们应该避免在没有必要的情况下使用过多的嵌套布局而且我已经延长了scrollView所以如果孩子的宽度小于屏幕,那么孩子可以放在中心。请尝试此代码,如有任何问题,请在评论部分告诉我。