CardView 内的 LinearLayout 未填充整个空间

问题描述 投票:0回答:2

为什么我的线性布局没有占据 CardView 内的整个空间? 当我使用预览并展开 LinearLayout 以匹配 CardViews 宽度时,它将宽度设置为 match_parent (我手动尝试过),但然后又回到现在的状态。 换句话说:我希望红色背景一直向右,并且右侧 TextView 也向右对齐。

enter image description here

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<android.support.v7.widget.CardView
    android:id="@+id/itemCardView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="3dp"
    android:layout_marginBottom="3dp"
    android:layout_marginTop="3dp"
    android:background="@color/Mat"
    android:padding="3dp"
    app:cardElevation="4dp"
    app:cardCornerRadius="1dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:animateLayoutChanges="true"
        android:background="@color/Mat"
        android:orientation="horizontal"
        android:padding="3dp"
        android:paddingLeft="5dp"
        android:paddingRight="5dp">


        <TextView
            android:id="@+id/textView2"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:background="@drawable/circle"
            android:gravity="center"
            android:text="DEU"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="Frau Hardt"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:id="@+id/textView4" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="O03"
            android:textAppearance="?android:attr/textAppearanceLarge" />

    </LinearLayout>

</android.support.v7.widget.CardView>

</LinearLayout>

编辑:删除最小宽度并将整个布局的宽度设置为 match_parent 后,它会一直向右。 现在,如何使 TextView 与名称水平居中并使右侧的文本视图与整个布局的右侧对齐?

我附上了一张照片,因为它们挨在一起看起来都很漂亮。我希望代码(特别是因为它不是很多)不必是文本。如果是这样,我当然会编辑问题! 谢谢!

android android-linearlayout cardview
2个回答
1
投票

将中间的 TextView 设置为这样;

<TextView
   android:layout_width="0dp"
   android:layout_weight="1"
   android:layout_height="wrap_content"
   ... />

它填满了剩余的中间空间。

您还应该使用 match_parent 而不是 fill_parent,因为它已被弃用。


0
投票

我认为你在CardView中使用了wrap_content高度,这就是为什么你使用Cardview作为主要布局

© www.soinside.com 2019 - 2024. All rights reserved.