Articles of gridlayoutmanager

RecyclerView GridLayoutManager具有全宽标题

我在这里使用一个非常有用的示例来显示RecyclerView和GridLayoutManager以显示带有标题的网格。 它看起来很不错,但我的平面设计师希望标题项占据RecyclerView的整个宽度。 现在有填充。 当我设置GridLayoutManager时,我添加填充(我仍然想要其他网格项):[它使用Xamarin C#] var numColumns = myListView.MeasuredWidth / tileSizeMax; myGridView.SetPadding(tilePadding, tilePadding, tilePadding, tilePadding); layoutManager = new GridLayoutManager(Activity, numColumns); myListView.SetLayoutManager(layoutManager); 那么,如何将标题项的填充设置为不同…或者使其在填充上绘制自己?

使用RecyclerView GridLayoutManager通过ItemDecoration创建列间距时,项目的宽度不同

我正在尝试使用RecyclerView和GridLayoutManager来制作一个3列网格,我使用ItemDecoration来制作列间距,现在问题是第三列中项目的宽度小于第一列和第二列中的项目! 请参阅下面的屏幕截图。 如果我没有将自定义ItemDecoration添加到RecyclerView ,一切正常。 这是我的代码: MainActivity.java: public class MainActivity extends AppCompatActivity { private RecyclerView mRecyclerView; private MyAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view); mAdapter = new MyAdapter(); mRecyclerView.setAdapter(mAdapter); GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3); mRecyclerView.setLayoutManager(gridLayoutManager); int horizontalSpacing = 20; int verticalSpacing = 10; SpacingDecoration decoration = new SpacingDecoration(horizontalSpacing, […]

如何在GridLayoutManager中设置项目行的高度

我的Recycler项目在onCreateViewHolder中膨胀 我想展示这样的东西,哪一行有一半高度的回收者View? 并在其余空间添加填充? 我可以通过GridLayoutManager来做到这一点吗? 这是我的GridLayoutManager GridLayoutManager glm = new GridLayoutManager(getActivity(), 2); recyclerView.setLayoutManager(glm);

android – 如何捕获与RecyclerView一起使用的ItemTouchHelper的Drop动作

我对RecyclerView的 ItemTouchHelper有问题。 我在做一个游戏。 游戏板实际上是RecyclerView。 RecyclerView具有一些跨度计数的GridLayoutManager 。 我想实现拖放 recyclerview的项目。 任何项目都可以拖动所有方向(向上,向下,向左,向右)。 private void initializeLayout() { recyclerView.setHasFixedSize(true); recyclerView.setLayoutFrozen(true); recyclerView.setNestedScrollingEnabled(false); // set layout manager GridLayoutManager layoutManager = new GridLayoutManager(getContext(), BOARD_SIZE, LinearLayoutManager.VERTICAL, true); recyclerView.setLayoutManager(layoutManager); // Extend the Callback class ItemTouchHelper.Callback itemTouchCallback = new ItemTouchHelper.Callback() { public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { Log.w(TAG, “onMove”); return false; } @Override […]

更改RecyclerView gridlayout中的列数

我试图根据显示大小更改回收器视图(网格布局)中显示的列数。 但是我无法find实现它的正确方法。 目前我正在使用treeViewObserver根据屏幕大小的变化(在定向期间)更改列数。 因此,如果应用程序以纵向模式打开,列数(在手机上)它决定为一个,看起来不错,但当应用程序直接以横向模式打开时,此方法不起作用,其中网格中有单个拉出的卡片显示在屏幕上。 这里recList是RecyclerView&glm是RecyclerView中使用的GridLayoutManager viewWidth = recList.getMeasuredWidth(); cardViewWidthZZ = recList.getChildAt(0).getMeasuredWidth(); if (oldWidth == 0) { oldWidth = cardViewWidthZZ; } if (oldWidth <= 0) return; int newSpanCount = (int) Math.floor(viewWidth / (oldWidth / 1.3f)); if (newSpanCount <= 0) newSpanCount = 1; glm.setSpanCount(newSpanCount); glm.requestLayout(); 最好的祝福

如何从右到左用GridLayoutManager填充RecyclerView

我正在尝试使用GridLayoutManager将一些数据填充到RecyclerView : GridLayoutManager layoutManager = new GridLayoutManager(this, 3, GridLayoutManager.VERTICAL, false); 这将从左到右将数据填充到网格中。 第一项将被放入左上角等地方。 但我正在开发的应用程序是为RTL语言设计的,所以我需要从右到左填充它。 我试图将最后一个参数更改为true 。 但它只是将RecyclerView向下滚动。 另外,为RecyclerView设置layoutDirection属性不起作用(不考虑我的min API为16,并且为API17 +添加了此属性): 如何使用RecyclerView创建从右到左填充的网格?

如何使用垂直GridLayoutManager水平居中RecyclerView项目

我有一个使用gridlayoutmanager的垂直recyclerview。 我希望每列都居中,但列始于左侧。 在下图中,您可以看到我在说什么。 我用丑陋的配色方案来说明列和背景。 绿色是recyclerview中每个项目的背景,红色是recyclerview本身的背景: View post on imgur.com 我正在设置: mRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); 这是column_item.xml: 这是recyclerview xml:

GridLayoutManager的spanSizeLookup错误

我有一个GridLayoutManger setSpanSizeLookup的问题,当一个活动的方向改变时,我正在改变跨度计数,而检查如果特定的位置是某种types,这完全适用于方向的变化,我唯一的问题是,我正在使用zxing库做条形码扫描,每当一个button被点击我打开zxing默认意图,并从中检索date,但是当zxing打开它去landscape ,我当前的活动方向是portrait这给了我的IllegalArgumentException布局在打开Xzing意图时pipe理抛出,崩溃日志是这样的 java.lang.IllegalArgumentException: Item at position 0 requires 2 spans but GridLayoutManager has only 1 spans. 这个问题不会发生,如果我旋转手机,只发生当我启动的Xzing意图,我真的不知道如何解决这个问题,因为它的窃听我。 这里是我的spanSizeLookup – manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { return adapter.getHolders().get(position).getLabelHolder() != null ? getResources().getInteger(R.integer.span) : 1; } }); span基于屏幕大小,因此它可以是1-2,2-3和3-4。 我重复一遍,这不会给我任何方向变化的错误,只有当我打开zxing时发生错误 PS如果我打开zxing intent而我的活动是在landspace崩溃不会发生。 编辑 它似乎只是启动zxing默认意图引起这个问题,我有一个activity ,它启动后,它的landscape和exception没有发生,作为一个解决方法,我做了,是我创build了一个activity ,处理barcode扫描延迟1秒发射的intent ,如果我不这样做,它会抛出同样的exception 。 编辑2 我刚刚发现,即使没有setSpanSpizeLookup,崩溃依然会发生。 通过调用manager.setSpanCount(getResources().getInteger(R.integer.span))

GridLayoutManager – 列宽包装自己的最大的孩子

我在HorizontalScrollView里面有一个RecyclerView ,我希望它使用一个GridLayoutManager 。 这是好的,但有一件事仍然困扰着我,每列的宽度是相同的(根据我认为最大的单元格宽度?)。 是否有可能包装的列的宽度匹配此特定列的最大单元格? 它应该看起来像这样: 橙色部分是电池片所采取的部分。 编辑 我们要求我澄清我的期望。 一个例子比单词好,在这里你可以看到一个带有GridLayoutManager的RecyclerView截图。 每个项目都是一个简单的TextView,包含10到40个字符之间的随机文本。 RecyclerView位于前面所述的Horizo​​ntalScrollView内部。 我们可以看到每个列都有相同的宽度,尽pipe这个列中没有项目可以满足整个宽度。 我想要的是去除那些无用的空白空间,并且有不同大小的列,每列都与自己最大的孩子的宽度相匹配。 如果你想testing这种行为,你可以克隆我上传到Github的回购: https : //github.com/ShargotthDev/TestGrid 如问,这是我的XML布局(非常基本): <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <HorizontalScrollView android:id="@+id/gameplay_hotizontalScroll_ScrollView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="70dp"> <android.support.v7.widget.RecyclerView android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/recycler_view" /> </HorizontalScrollView> </RelativeLayout> 编辑2 我应该提到,一些单元格的span大小可能大于1,LayoutManager应该是垂直的,这样这些单元格会在水平方向而不是垂直方向占据更多的位置(不知道自己是否可以理解)。 谢谢你的时间 !

RecyclerView与GridLayoutManager

装饰RecyclerView具有这种外观和感觉的最好和最简单的方法是什么? 我正在开发一个旅行座位预订应用程序…我知道我可以做与gridlayout经理recyclerview ..但应该是什么步骤我不知道一件事要注意每个巴士有不同的座位安排