使用DataBinding时layout_height在布局文件中不起作用

时间:2019-08-27 10:46:43

标签: android android-layout android-recyclerview android-imageview android-databinding

我从后端服务器获取用户列表,并显示在RecyclerView中。每行都有一个布局文件。这是我尝试过的:

<layout xmlns:android="http://schemas.android.com/apk/res/android">

    <data class="UserDataBinding">
        <variable
            name="user"
            type="com.example.myapp.User" />
    </data>

    <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:layout_margin="2dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

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

            //Other views
    </androidx.cardview.widget.CardView>
</layout>

我的目标是仅显示个人资料图片。问题是,即使我将layout_height设置为150dp,图片也显示得非常小。即使我增加身高,也没有任何反应。如何将CardView / ImageView设置为固定高度?


编辑:

我找到了解决方案。我忘了夸大视图。这行解决了问题:

ListItemBinding binding = DataBindingUtil.inflate(layoutInflater, R.layout.list_item, viewGroup, false);

2 个答案:

答案 0 :(得分:0)

根据我们的讨论,我将添加一个XML代码,在其中您可以根据grid_layout_item的基本更改来进行网格布局

 <GridView
            android:id="@+id/mainGridview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#F3F3F3"
            android:columnWidth="200dp"
            android:numColumns="4"
            android:paddingStart="-2dp"
            android:paddingTop="2dp"
            android:paddingEnd="-2dp"
            android:paddingBottom="2dp"
            android:stretchMode="columnWidth">

        </GridView>

在CardView中查看下面的代码,根据您的需要,它具有90dp,您可以更改它。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="90dp"
    android:layout_margin="2dp">
    <LinearLayout
        android:id="@+id/gridviewdata"
        android:layout_width="match_parent"
        android:background="#fff"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:gravity="center">
        <ImageView
            android:id="@+id/services"
            android:layout_width="32dp"
            android:layout_height="32dp"
            android:src="@drawable/ic_launcher_background"
            tools:ignore="ContentDescription" />

        <TextView
            android:id="@+id/names"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/gridname"
            android:textSize="12sp"
            android:textAlignment="center"
            android:layout_marginTop="@dimen/margin4"/>


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

任何进一步的更新和帮助您可以在评论部分中评论您的问题。 编码愉快。

答案 1 :(得分:0)

如@DavidWasser所建议,我将解决方案添加为对自己问题的答案。问题是我忘了夸大视图。这行解决了我的问题:

ListItemBinding binding = DataBindingUtil.inflate(layoutInflater, R.layout.list_item, viewGroup, false);