簡體   English   中英

在另一個居中的文本視圖下方有一個文本視圖?

[英]Having a textview below another textview that is centered?

我目前有一個居中的文本視圖,並且想在居中的文本視圖下方添加另一個文本視圖,但它只是將它放在與前一個文本視圖相同的位置,有沒有辦法解決這個問題?

代碼:

<FrameLayout
        android:layout_width="350dp"
        android:layout_height="500dp"
        android:background="@color/white">

        <TextView
            android:id="@+id/info_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/test"
            android:textSize="18sp"
            android:textStyle="normal"
        />
        <TextView
            android:id="@+id/info_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/test"
            android:textSize="18sp"
            android:textStyle="normal"
            />

    </FrameLayout>

您正在將第二個文本視圖中的重力設置為中心,將其刪除或在那里使用您想要的重力

將線性布局與android:orientation一起使用,然后您就獲得了中心布局

<LinearLayout
        android:layout_width="350dp"
        android:layout_height="500dp"
        android:orientation="vertical"
        android:background="@color/white">

        <TextView
            android:id="@+id/info_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/test"
            android:textSize="18sp"
            android:textStyle="normal"
        />
        <TextView
            android:id="@+id/info_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/test"
            android:textSize="18sp"
            android:textStyle="normal"
            />

    </FrameLayout>

而不是使用FrameLayout使用LinearLayout

<LinearLayout
    android:gravity="center"
    android:layout_width="350dp"
    android:layout_height="500dp"
    android:background="@color/white"
    android:orientation="vertical">

    <TextView
        android:id="@+id/info_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/test"
        android:textSize="18sp"
        android:textStyle="normal"
        />

    <TextView
        android:id="@+id/info_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/test"
        android:textSize="18sp"
        android:textStyle="normal"
        />

</LinearLayout>

輸出:

在此處輸入圖片說明

我希望這對你有用。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white">

    <TextView
        android:id="@+id/info_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:gravity="center"
        android:text="@string/test"
        android:textSize="18sp"
        android:textStyle="normal" />

    <TextView
        android:id="@+id/info_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="40dp"
        android:layout_marginBottom="10dp"
        android:gravity="center"
        android:text="@string/test"
        android:textSize="18sp"
        android:textStyle="normal" />

</FrameLayout>

始終使用match_parentwrap_content而不是 dp 中的維度。

我在你的文件中看到你有兩個文本視圖的 android:layout_gravity="center" 和 android:gravity="center" 。 這將使他們坐在彼此之上。 您可以嘗試在 info_name 的底部和 info_text 的頂部放置一些填充,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="350dp" android:layout_height="500dp">

    <TextView
        android:id="@+id/info_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="60dp"
        android:layout_gravity="center"
        android:gravity="center"
        android:text="@string/test"
        android:textSize="18sp"
        android:textStyle="normal" />

    <TextView
        android:id="@+id/info_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="60dp"
        android:layout_gravity="center"
        android:gravity="center"
        android:text="@string/test"
        android:textSize="18sp"
        android:textStyle="normal" />
</FrameLayout>

雖然這會增加一些空間,但它基本上只是拉伸 textview 本身,textview 仍然會重疊。 您可以使用上面建議的線性布局,但我更喜歡使用約束布局,因為它使放置項目和提供間距變得更加容易。 您可以右鍵單擊組件樹中的 FrameLayout 並將其轉換為 ConstraintLayout。 然后,您可以放置​​ info_name 並將其約束句柄設置為 50 在約束小部件Android Studio ConstraintLayout 小部件中,然后將另一個 textview 掛鈎到它並將其設置在您喜歡放置第二個 textview 的位置

這是xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/frameLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/info_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/test"
        android:textSize="18sp"
        android:textStyle="normal"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/info_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/test"
        android:textSize="18sp"
        android:textStyle="normal"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/info_name"
        app:layout_constraintVertical_bias="0.100000024" />
</androidx.constraintlayout.widget.ConstraintLayout>

您可以在此處的文檔中找到更多信息。

在相對布局中放置兩個文本視圖

 <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="350dp"
        android:layout_height="500dp"
        android:background="@android:color/darker_gray">

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center">

            <TextView
                android:id="@+id/info_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="Name"
                android:textSize="18sp"
                android:textStyle="normal" />

            <TextView
                android:layout_below="@+id/info_name"
                android:id="@+id/info_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="Test"
                android:textSize="18sp"
                android:textStyle="normal" />
        </RelativeLayout>
    </FrameLayout>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM