android:gravity =“ center_vertical”无法与RelativeLayout一起使用-ScrollView-TableLayout / TableRow-TextView

时间:2019-04-22 20:46:55

标签: android-layout

我的activity_main屏幕xml文件是使用RelativeView和ScrollView进行布局的,该ScrollView包含封装了四个TextViews的TableLayout / TableRows。我已使用android:gravity =“ center | center_vertical”将每个TableRows居中。当我运行该应用程序时,屏幕上的每一行文本都正确地垂直居中。当我刷新屏幕时,文本会向上移动到视图顶部。

我到处都是stackoverflow和其他站点,发现了不同的局部解决方案-它们都不适用于我。通常是因为我无法从RelativeView转到LinearView。

这种情况的奇怪之处在于它的产生是因为我必须在每个TextView中包含android:layout_width =“ 0dp”行,以便android:layout_weight可以正常工作(这是我发现的建议解决方案)。当我排除android:layout_width =“ 0dp”行时,每一行中的文本均正确对齐。

那么在我的xml文件中包含android:layout_width =“ 0dp”会导致文本在刷新后向上移动是什么问题?

我尝试用LinearLayout替换RelativeLayout。它不适用于我的应用程序。 我试图删除android:layout_width =“ 0dp”。我需要它来使布局权重起作用。 我已包含并排除了android:gravity =“ center_vertical”,但无效。

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

...

   <ScrollView
        android:id="@+id/calcTableLayout"
        android:visibility="visible"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:layout_below="@+id/calcHeaderLayout"
        android:layout_above="@+id/bottomMenuLayout"
        android:fadingEdge="none">

        <TableLayout
            android:id="@+id/tableLayout1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="0dp" >

            <TableRow
                android:id="@+id/tableRow_D"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:weightSum="40" >

                <TextView
                    android:id="@+id/text_D_label"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="19"
                    android:background="@color/defaultTableBackground1"
                    android:gravity="start|center_vertical"
                    android:minHeight="@dimen/tblMinRowSize"
                    android:paddingStart="12dp"
                    android:paddingEnd="0dp"
                    android:text="@string/loads_D"
                    android:textColor="@color/defaultTableText1"
                    android:textSize="@dimen/tblFontSize"
                    android:visibility="visible" />

                <TextView
                    android:id="@+id/text_D_ULoad"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="8"
                    android:background="@color/defaultTableBackground1"
                    android:gravity="end|center_vertical"
                    android:minHeight="@dimen/tblMinRowSize"
                    android:paddingStart="0dp"
                    android:paddingEnd="10dp"
                    android:text="@string/zero_value"
                    android:textColor="@color/defaultTableText1"
                    android:textSize="@dimen/tblFontSize"
                    android:visibility="visible" />

                <TextView
                    android:id="@+id/text_D_Factor"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="5"
                    android:background="@color/defaultTableBackground1"
                    android:gravity="center_horizontal|center_vertical"
                    android:minHeight="@dimen/tblMinRowSize"
                    android:paddingStart="0dp"
                    android:paddingEnd="0dp"
                    android:text="@string/zero_value_3_digit"
                    android:textColor="@color/defaultTableText1"
                    android:textSize="@dimen/tblFontSize"
                    android:visibility="visible" />

                <TextView
                    android:id="@+id/text_D_FLoad"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="8"
                    android:background="@color/defaultTableBackground1"
                    android:gravity="end|center_vertical"
                    android:minHeight="@dimen/tblMinRowSize"
                    android:paddingStart="0dp"
                    android:paddingEnd="12dp"
                    android:text="@string/zero_value"
                    android:textColor="@color/defaultTableText1"
                    android:textSize="@dimen/tblFontSize"
                    android:visibility="visible" />
            </TableRow>

        </TableLayout>

    </ScrollView>

</RelativeLayout>

...

启动应用程序时,TableRows中每个TextViews中的文本都与垂直中心对齐。但是随后在刷新时,所有四个TextView(或至少TextView中的文本)都移到TextView的顶部。

0 个答案:

没有答案