TextView没有出现在cardView上

时间:2017-07-15 03:09:28

标签: android

我是Android的新手,我不确定布局是如何工作的或如何调试。这就是CardView xml文件的样子。我知道文本在那里。但它被图像覆盖

<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_margin="5dp"
card_view:cardElevation="2dp"
card_view:cardCornerRadius="4dp">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/info_image"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:scaleType="centerCrop"/>

    <TextView
        android:id="@+id/info_text"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

这就是它在应用中的样子。

enter image description here

没有ImageView,它就像这样。

enter image description here

3 个答案:

答案 0 :(得分:2)

尽量不要使用fill_parent这是不推荐使用的,并使用布局权重来显示您的文本。以下是有关正确使用layout_weight Android Developers的更多信息。

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:layout_margin="5dp"
        card_view:cardCornerRadius="4dp"
        card_view:cardElevation="2dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <ImageView
                android:id="@+id/info_image"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:scaleType="centerCrop" />

            <TextView
                android:id="@+id/info_text"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

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

答案 1 :(得分:2)

android:layout_height="match_parent"

此属性使视图填充整个父视图。 (请注意,它与fill_parent相同。您应该使用API​​中引入的match_parent。)这会导致ImageView填充整个CardView和不允许TextView占用任何空间。

您应为这两个孩子设置android:layout_height="0dp",并使用andorid:layout_weight指定每个孩子应占用的空间。

答案 2 :(得分:2)

您可以使用相对布局

代替线性布局
df[df1.columns] = df1.mask(m2)
print (df)
       asked   answered   Days  Days2
0 2016-07-04 2016-07-07 3 days 3 days
1 2016-07-03 2016-07-01    NaT    NaT
2 2016-07-05 2016-07-09 4 days 4 days
3        NaT        NaT    NaT    NaT