在不滚动的情况下填写RecyclerView

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

所以我有一个使用GridLayoutManager的RecyclerView并使用一个超级简单的适配器,除了在textviews中放置文本之外什么都不做。

我的问题是我希望文本均匀地填充整个网格(向下到按钮),同时使网格不可滚动。我只想要一个不滚动并填充布局的网格。

这是我目前所拥有的(网格是“你赢了”和底部按钮之间的所有内容):

enter image description here

val numberOfColumns = 3
                resultsRecyclerView.layoutManager = GridLayoutManager(this, numberOfColumns)
                val adapter = GridAdapter(this, gridData)
                resultsRecyclerView.adapter = adapter

grid item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:padding="5dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:textSize="24sp"
        android:textColor="@color/textColor"/>

</LinearLayout>

我被告知这将是一个很好的方法来制作网格而不单独做每个文本视图。是否有更好的方法来制作不可滚动,均匀间隔的网格?任何帮助表示赞赏。

android android-recyclerview kotlin gridlayoutmanager
3个回答
0
投票

尝试更改线性布局的layout_weight属性。


0
投票

RecyclerView在窗口小部件中滚动了滚动。如果您只是需要屏幕上的数据,请考虑ScrollView并添加这两行代码

View.setVerticalScrollBarEnabled(false);
View.setHorizontalScrollBarEnabled(false);

然后我猜测只是在ScrollView中放了一堆TextViews来显示数据


0
投票

我认为你想要达到非滚动列表的是:

GridLayoutManager glm = new GridLayoutManager(this, 3) {
     @Override
     public boolean canScrollVertically() {
         return false;
     }
}

这是Java,但并不难将它移植到Kotlin,希望它有所帮助。

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