Android 如何在linearlayout中相互设置文本视图
我想要的是,我可以在左边有一个ImageView,在ImageView旁边,在另一个下面有两个TextView。我无法获取textview下的第二个textviewAndroid 如何在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
<?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时,它仍会改变底部边距。为什么我不能更改上边距?我必须看看问题出在哪里,以及您试图在哪里应用边距。很抱歉,我没有收到你的评论通知。如果你仍然有这个问题,请确保在评论时标记我@做得很好