layout_height 使用 DataBinding 时在布局文件中不起作用
layout_height doesn't work in layout file when using 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);
根据我们的讨论,我添加了一个 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>
任何进一步的更新和帮助您可以在评论部分评论您的问题。
编码愉快。
正如@DavidWasser 所建议的,我添加了解决方案作为我自己问题的答案。问题是我忘了给视图充气。这条线解决了我的问题:
ListItemBinding binding = DataBindingUtil.inflate(layoutInflater, R.layout.list_item, viewGroup, false);
我正在从后端服务器获取用户列表并显示在 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);
根据我们的讨论,我添加了一个 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>
任何进一步的更新和帮助您可以在评论部分评论您的问题。 编码愉快。
正如@DavidWasser 所建议的,我添加了解决方案作为我自己问题的答案。问题是我忘了给视图充气。这条线解决了我的问题:
ListItemBinding binding = DataBindingUtil.inflate(layoutInflater, R.layout.list_item, viewGroup, false);