【发布时间】:2016-05-15 06:39:54
【问题描述】:
我的回收站项目在 onCreateViewHolder 中膨胀
<?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:gravity="center"
android:orientation="vertical"
android:padding="16dp">
<ImageView
android:id="@+id/gridListImageView"
android:layout_width="96dp"
android:layout_height="96dp"
android:src="@drawable/a" />
<TextView
android:id="@+id/gridListView_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
I want to display something like this 哪一排的高度是回收站视图的一半? 并为其余空间添加填充? 我可以通过 GridLayoutManager 做到这一点吗?
这是我的 GridLayoutManager
GridLayoutManager glm = new GridLayoutManager(getActivity(), 2);
recyclerView.setLayoutManager(glm);
【问题讨论】:
-
如果您为
RecyclerView设置了一个特定的高度,您可以将其一半设置为LinearLayout的高度。如果不是,例如,如果您希望一项为屏幕高度的一半,则必须以编程方式进行,获取屏幕高度,进行一些计算并设置 LayoutParams。 -
你必须计算屏幕高度 - 减去导航栏高度,然后除以 2 以获得行高
-
为什么不尝试使用 LinearLayout,使用 weightSum 会很容易
-
@AmitVaghela 我必须添加更多项目,所以我必须使用回收站视图!
-
@Amy,我得到 view.getLayoutParams().height 为 -1 和 view.getMeasuredHeight() 为 0。怎么办?
标签: android android-recyclerview gridlayoutmanager