我想要的是我可以在左侧和左侧的1个ImageView下方分别拥有2个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>
结果现在看起来: Result
答案 0 :(得分:2)
您可以使用类似以下的内容:
<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分钟的时间来修复您的布局,因为您基本上在自己喜欢的任何地方添加了layout_weight
!
答案 1 :(得分:0)
您的线性布局方向是水平的,因此您不能使文本视图垂直对齐,除非您为具有垂直方向的2个文本视图再采用一种线性布局。否则,您可以使用单个相对布局来完成此操作。
这是结构
<LinearLayout> - horizontal orientation
<Imageview/>
<LinearLayout> - vertical orientation
<Textview/>
<Textview/>
</LinearLayout> - vertical orientation
</LinearLayout> - horizontal orientation.
答案 2 :(得分:0)
已将“线性布局”的方向设置为水平。这将使所有子级(在您的情况下为ImageView,TextView名称和TextView描述)彼此水平排列。
有很多方法可以做到这一点。 实现此目的的一种方法是使用RelativeLayout,然后可以使用
android:layout_toBottomOf="@id/textview_name"
使描述文本视图位于名称文本视图下方。
对于图像视图,您可以使用属性
android:layout_alignParentLeft="true"
使图像视图停留在左边框。请尝试使用RelativeLayout以获得所需的结果。
请使用Google提供的此代码实验室来使用ContraintLayout。 https://codelabs.developers.google.com/codelabs/constraint-layout/index.html#0