我有两个视图在彼此之下。底视图至少需要与顶视图一样大。
我能够将底部视图限制为与顶部视图具有相同的大小,但它有可能使视图具有更大的宽度。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Base textview"
android:layout_marginStart="16dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
app:layout_constraintTop_toTopOf="parent"
android:background="@color/module_color_blue"
android:id="@+id/textView"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Smaller"
app:layout_constraintTop_toBottomOf="@+id/textView"
android:background="@color/red"
app:layout_constraintLeft_toLeftOf="@+id/textView"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintRight_toRightOf="@+id/textView"/>
</android.support.constraint.ConstraintLayout>
另一方面,我能够使底部视图不受约束,但是视图可以比顶部视图小。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Base textview"
android:layout_marginStart="16dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
app:layout_constraintTop_toTopOf="parent"
android:background="@color/module_color_blue"
android:id="@+id/textView"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Much longer that top textview"
app:layout_constraintTop_toBottomOf="@+id/textView"
android:background="@color/red"
app:layout_constraintLeft_toLeftOf="@+id/textView"
/>
</android.support.constraint.ConstraintLayout>
我可以使用现有布局实现这一目标,还是需要特殊布局?
情景A:
底部视图比顶部小,因此它们具有相同的宽度
情景B:
底部视图较大,顶部不受约束
答案 0 :(得分:1)
如果我正确理解您的问题,那么您希望两个文本视图具有相同的宽度,并且拾取的宽度应该是较大的文本。在这种情况下,您可以使用TableLayout
,如下所示:
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:text="TextView20938487494590786907809568659"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView3"
android:background="#80123456"
/>
<TextView
android:text="TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView2"
android:background="#80723456"
/>
</TableLayout>
答案 1 :(得分:0)
将两个视图放在LinearLayout
中,将LinearLayout
宽度设为wrap_content
,将顶视图设为match_parent
,将底视图宽度设为wrap_content
:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="text1"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="text2text2"/>
</LinearLayout>
答案 2 :(得分:0)
如果我理解你的问题,你可以尝试一下......
<?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:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/blue"
android:text="Base TextView" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/red"
android:text="Much Longer than top textView" />
</LinearLayout>
这里的技巧是将父布局宽度设置为特定宽度。 然后设置子项的宽度,即两个textView的宽度等于父布局的宽度...
PS:如果您希望将文本居中对齐,可以设置android:gravity =&#34; center_horizontal&#34;在你的textViews中。希望这会有所帮助。
答案 3 :(得分:0)
采用线性布局并指定您的观点。
<?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:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is TextView 1"
android:background="@color/colorAccent"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is TextView 1"
android:background="@color/colorPrimaryDark"/>
</LinearLayout>