簡體   English   中英

在水平線性布局中將textview設置在另一個textview下方

[英]Set textview below another textview in horizontal linear layout

如何在tvOperationName下面設置TextView對象tvOperationDesc

這是我的布局xml:

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

    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin">

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/tvOperationName"
        android:layout_width="0sp"
        android:layout_height="fill_parent"
        android:layout_weight="2"
        android:gravity="center_vertical"
        />

    <TextView
        android:id="@+id/tvOperationDesc"
        android:layout_width="0sp"
        android:layout_height="fill_parent"
        android:layout_weight="2"
        android:gravity="center_vertical"
        android:layout_below="@+id/tvOperationName"
        />

        <EditText
            android:id="@+id/txtMultiplier"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:inputType="numberDecimal"
            android:text="0"
            android:textAppearance="?android:attr/textAppearanceSmall" />

    <CheckBox
        android:id="@+id/cbChkBox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>
</RelativeLayout>

水平線性布局中textview下面的textview

根本不可能。 其明確提到的水平線性布局。 因此,您的視圖僅在水平方向對齊。

然后

如果將線性布局orientation設置為horizontal視圖將水平對齊,而將orientationvertical視圖將以線性方式垂直對齊,這意味着一對一。


一種相對的布局足以滿足您的要求。 看看我的回答如何對齊相對的布局視圖將為您提供幫助。

請嘗試以下代碼。

<TextView
    android:id="@+id/tvOperationDesc"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="Description" />


<LinearLayout
    android:id="@+id/secondLinearLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/tvOperationName"
        android:layout_width="0sp"
        android:layout_height="fill_parent"
        android:layout_weight="2"
        android:gravity="center_vertical"
        android:text="Name" />


    <EditText
        android:id="@+id/txtMultiplier"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:inputType="numberDecimal"
        android:text="0"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <CheckBox
        android:id="@+id/cbChkBox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

如果您要EditText和Checkbox與tvOperationName垂直放置在同一行,只需將secondLinearLayout的方向更改為Vertical,並將gravity =“ center_horizo​​ntal”設置為secondLinearLayout即可。

在您的相對布局中使用2個單獨的水平線性布局,您可以根據需要調整權重和高度:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin">

    <LinearLayout 
        android:id="@+id/upLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="3">

        <TextView
            android:id="@+id/tvOperationName"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2" />

        <EditText
            android:id="@+id/txtMultiplier"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:inputType="numberDecimal"
            android:text="0"
            android:textAppearance="?android:attr/textAppearanceSmall" />

        <CheckBox
            android:id="@+id/cbChkBox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_below="@+id/upLayout">

        <TextView
            android:id="@+id/tvOperationDesc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"/>
    </LinearLayout>

</RelativeLayout>

添加另一個LinearLayout ,將其方向設置為vertical ,並放置兩個TextView

並刪除LinearLayout的子視圖中的layout_below屬性,因為它沒有用。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
    android:id="@+id/tvOperationName"
    android:layout_width="0sp"
    android:layout_height="fill_parent"
    android:layout_weight="2"
    android:gravity="center_vertical"
    />

<TextView
    android:id="@+id/tvOperationDesc"
    android:layout_width="0sp"
    android:layout_height="fill_parent"
    android:layout_weight="2"
    android:gravity="center_vertical"
    android:layout_below="@+id/tvOperationName"
    />
</LinearLayout>

暫無
暫無

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

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