Android 如何在linearlayout中相互设置文本视图

Android 如何在linearlayout中相互设置文本视图,android,Android,我想要的是,我可以在左边有一个ImageView,在ImageView旁边,在另一个下面有两个TextView。我无法获取textview下的第二个textview <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools

我想要的是,我可以在左边有一个ImageView,在ImageView旁边,在另一个下面有两个TextView。我无法获取textview下的第二个textview

<?xml version="1.0" encoding="utf-8"?>

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

<ImageView
    android:id="@+id/displayImage"
    android:layout_width="67dp"
    android:layout_height="100dp"
    android:layout_gravity="left"
    android:layout_weight="1" />

<TextView
    android:id="@+id/textview_name"
    android:layout_width="40dp"
    android:layout_height="wrap_content"
    android:layout_gravity="top"
    android:layout_weight="2"
    android:paddingLeft="10dp"
    android:paddingTop="10dp"
    android:paddingBottom="3dp"
    android:textColor="@color/colorPrimaryDark"
    android:textSize="20sp"

    android:textStyle="bold" />

<TextView
    android:id="@+id/textview_description"
    android:layout_width="55dp"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:layout_weight="2"
    android:gravity="left"
    android:paddingLeft="10dp"
    android:paddingTop="10dp"
    android:paddingBottom="3dp"
    android:textSize="20sp" />
</LinearLayout>

结果现在看来:


您可以使用以下内容:

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

    <ImageView
        android:id="@+id/displayImage"
        android:layout_width="67dp"
        android:layout_height="100dp"
        android:src="@color/colorPrimaryDark" />

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:id="@+id/textview_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="10dp"
            android:paddingTop="10dp"
            android:paddingBottom="3dp"
            android:text="Left text"
            android:textColor="@color/colorPrimaryDark"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/textview_description"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:paddingLeft="10dp"
            android:paddingTop="10dp"
            android:paddingBottom="3dp"
            android:text="Right text" />
    </LinearLayout>
</LinearLayout>

您可以将
LinearLayout
RelativeLayout
FrameLayout
等容器相互嵌套,以创建复杂的布局


此外,我建议在布局中的任何地方不适当地使用标签之前,通过谷歌搜索它们来了解每个标签的作用。我花了整整5分钟来修复你的布局,因为你添加了
layou-weight
基本上在你喜欢的任何地方

您可以使用以下内容:

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

    <ImageView
        android:id="@+id/displayImage"
        android:layout_width="67dp"
        android:layout_height="100dp"
        android:src="@color/colorPrimaryDark" />

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:id="@+id/textview_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="10dp"
            android:paddingTop="10dp"
            android:paddingBottom="3dp"
            android:text="Left text"
            android:textColor="@color/colorPrimaryDark"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/textview_description"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:paddingLeft="10dp"
            android:paddingTop="10dp"
            android:paddingBottom="3dp"
            android:text="Right text" />
    </LinearLayout>
</LinearLayout>

您可以将
LinearLayout
RelativeLayout
FrameLayout
等容器相互嵌套,以创建复杂的布局


此外,我建议在布局中的任何地方不适当地使用标签之前,通过谷歌搜索它们来了解每个标签的作用。我花了整整5分钟来修复你的布局,因为你添加了
layou-weight
基本上在你喜欢的任何地方

您的线性布局方向是水平的,因此您无法使文本视图垂直对齐,除非您为具有垂直方向的两个文本视图再选择一个线性布局。否则,可以使用单个相对布局来完成此操作

结构如下

<LinearLayout> - horizontal orientation
<Imageview/>
<LinearLayout> - vertical orientation
<Textview/>
<Textview/>
</LinearLayout> - vertical orientation
</LinearLayout> - horizontal orientation.
-水平方向
-垂直方向
-垂直方向
-水平方向。

您的线性布局方向是水平的,因此您无法使文本视图垂直对齐,除非您为两个具有垂直方向的文本视图再选择一个线性布局。否则,可以使用单个相对布局来完成此操作

结构如下

<LinearLayout> - horizontal orientation
<Imageview/>
<LinearLayout> - vertical orientation
<Textview/>
<Textview/>
</LinearLayout> - vertical orientation
</LinearLayout> - horizontal orientation.
-水平方向
-垂直方向
-垂直方向
-水平方向。

您已将线性布局的方向设置为水平。这将使所有子项(在您的示例中为ImageView、TextView名称和TextView描述)水平排列在一起

有很多方法可以做到这一点。 实现这一点的一种方法是使用RelativeLayout,然后您可以使用

android:layout\u toBottomOf=“@id/textview\u name”

使描述文本视图位于名称文本视图下方

对于图像视图,可以使用属性

android:layout\u alignParentLeft=“true”

使图像视图粘贴到左边框。请使用RelativeLayout进行实验以获得所需的结果


请使用谷歌的这个代码库来使用ContrainLayout

已将线性布局的方向设置为水平。这将使所有子项(在您的示例中为ImageView、TextView名称和TextView描述)水平排列在一起

有很多方法可以做到这一点。 实现这一点的一种方法是使用RelativeLayout,然后您可以使用

android:layout\u toBottomOf=“@id/textview\u name”

使描述文本视图位于名称文本视图下方

对于图像视图,可以使用属性

android:layout\u alignParentLeft=“true”

使图像视图粘贴到左边框。请使用RelativeLayout进行实验以获得所需的结果


请使用谷歌的这个代码库来使用ContrainLayout

我还有一个问题,当我在页边空白处添加一条边距时,它会改变底部边距,而当我在底部键入边距时,它仍会改变底部边距。为什么我不能更改上边距?我必须看看问题出在哪里,以及您试图在哪里应用边距。很抱歉,我没有收到你的评论通知。如果你仍然有这个问题,请确保在评论时标记我@DoingGreatI还有一个问题,当我添加一个marginTop时,它会改变底部边距,当我键入marginBottom时,它仍会改变底部边距。为什么我不能更改上边距?我必须看看问题出在哪里,以及您试图在哪里应用边距。很抱歉,我没有收到你的评论通知。如果你仍然有这个问题,请确保在评论时标记我@做得很好