首页 > 解决方案 > android xml中的文本布局不正确

问题描述

我在 android 中的布局有问题。基本上我的文本显示在一行中,如下所示:

@string/否 @string/day_mainpage @string/否

但是,我希望文本@string/day_mainpage @string/no显示在第一个@string/no下方,就像这样:

           @string/no 
@string/day_mainpage @string/no

如何更改 xml 以满足此要求?

 <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="@dimen/_10sdp"
        android:orientation="horizontal"
        android:padding="@dimen/_10sdp">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:orientation="horizontal">

            <com.example.tecocraft.challenge_reward.widget.ButtonTextViewBold
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@color/black_dark"
                android:textSize="@dimen/_20sdp"
                android:textStyle="bold"
                android:visibility="gone" />

            <com.example.tecocraft.challenge_reward.widget.ButtonTextViewBold
                android:id="@+id/main_page_no1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="@dimen/_5sdp"
                android:layout_marginRight="@dimen/_5sdp"
                android:text="@string/no"
                android:textColor="@color/black_dark"
                android:textSize="@dimen/_15sdp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:orientation="horizontal">

            <com.example.tecocraft.challenge_reward.widget.ButtonTextViewBold
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/day_mainpage"
                android:textColor="@color/black_dark"
                android:textSize="@dimen/_15sdp"
                android:textStyle="bold" />

            <com.example.tecocraft.challenge_reward.widget.ButtonTextViewBold
                android:id="@+id/main_page_no2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="@dimen/_5sdp"
                android:text="@string/no"
                android:textColor="@color/black_dark"
                android:textSize="@dimen/_15sdp" />
        </LinearLayout>
    </LinearLayout>

标签: android

解决方案


这是因为您的父布局具有水平方向:每个子视图都显示在一列中。LinearLayout 是一个视图组,可将所有子项在一个方向(垂直或水平)上对齐。

因此,正如评论中所说,只需将最外面的 LinearLayout 的方向更改为垂直

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center"
    android:orientation="vertical"> <-- This one
...
</LinearLayout>

在此处输入图像描述

你可以在这里了解更多。


推荐阅读