【问题标题】:How to align Two TextViews next to each other in LinnearLayouts?如何在 LinnearLayouts 中对齐两个 TextView?
【发布时间】:2018-08-20 23:32:53
【问题描述】:

我试图将两个 TextView 并排放置,但不知何故我无法让它工作。我想要以下内容:txtViewAddress: txtAddress 我试过把 android:layout_toRightOf="@id/txtViewAddress" 我也试过把layout_toLeftOf,但都没有工作。

希望你们能帮帮我。提前致谢。

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

<TextView
    android:id="@+id/CalendarID"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:visibility="gone" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="480dp"
        android:layout_height="wrap_content"
        android:orientation="vertical">


        <TextView
            android:id="@+id/txtViewAddress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Address: "
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="22dp"
            android:textStyle="bold"/>

        <TextView
            android:id="@+id/txtAddress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toEndOf="@id/txtViewAddress"
            android:text="Hello"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="22dp"
            android:textStyle="bold"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:gravity="right"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btn_update"
            android:layout_width="45dp"
            android:layout_height="35dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="100dp"
            android:background="@drawable/edit"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:text="" />

        <Button
            android:id="@+id/btn_delete"
            android:layout_width="38dp"
            android:layout_height="24dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="100dp"
            android:background="@drawable/delete"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:text="" />
    </LinearLayout>
</LinearLayout>

【问题讨论】:

  • 如果你真的需要水平方向,为什么要给垂直方向?
  • 只需将您的 LinearLayout 更改为方向 verticalhorizo​​ntal 你有 Textviews of addresses
  • 我确实将方向设置为水平,但前两个文本视图很好。我有多个文本视图。第一行是地址:来自数据库的地址,第二行签入日期:从数据库签入日期,第三行签出日期:从数据库中提取的签出日期。

标签: java android android-layout android-linearlayout


【解决方案1】:

如果您需要在线性布局中彼此相邻的视图,则布局的方向必须是水平的。

您也可以使用约束布局,它在将视图放置在屏幕上时具有更大的灵活性。

【讨论】:

    【解决方案2】:

    android:layout_toRightOf="@id/txtViewAddress" 是相对布局的属性部分

    使用此代码

    <LinearLayout
        android:layout_width="480dp"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
    
        <TextView
            android:id="@+id/txtViewAddress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Address: "
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="22dp"
            android:textStyle="bold"/>
    
        <TextView
            android:id="@+id/txtAddress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toEndOf="@id/txtViewAddress"
            android:text="Hello"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="22dp"
            android:textStyle="bold"/>
    
    </LinearLayout>
    

    【讨论】:

    • 只给我看一张图片或画出你想要的东西,这样我就可以根据它来更改我的代码
    【解决方案3】:
    <LinearLayout
        android:layout_width="480dp"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="2">
    
    
        <TextView
            android:id="@+id/txtViewAddress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Address: "
            android:layout_weight="1"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="22dp"
            android:textStyle="bold"/>
    
        <TextView
            android:id="@+id/txtAddress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toEndOf="@id/txtViewAddress"
            android:layout_weight="1"
            android:text="Hello"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="22dp"
            android:textStyle="bold"/>
    </LinearLayout>
    

    android:orientation="vertical" 更改为android:orientation="horizontal"
    也可以使用android:weightSum="2"weightSum 来定义视图的优先级
    如果你对线性布局内的所有视图赋予相同的权重,那么所有视图在线性布局内占据相同的空间

    【讨论】:

      【解决方案4】:

      应该如下所示

      <LinearLayout
              android:layout_width="480dp"
              android:layout_height="wrap_content"
              android:orientation="horizontal">
      
      .....
      ......
      .....
          </LinearLayout>
      

      我还建议不要给布局提供固定宽度,而是将其设置为屏幕尺寸

      【讨论】:

      • 问题是我有多个文本视图,需要垂直
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-12
      • 2019-12-02
      • 1970-01-01
      • 2013-03-26
      • 1970-01-01
      • 2019-09-30
      • 1970-01-01
      相关资源
      最近更新 更多