Articles of android gridlayout

如何在API 21之前支持`layout_columnWeight`和`layout_rowWeight`?

我使用下面的网格布局和layout_columnWeight以及layout_rowWeight来集中我在网格单元格中的视图。 但它们仅适用于v21及以上版本。 如何在API 21之前支持layout_columnWeight和layout_rowWeightfunction?

RecyclerView – 跳过第一个布局传递的屏幕外项目

我的一个适配器出了问题。 我有一系列图像,我在网格中显示如下: 当我有一个单一屏幕的项目并且它们都显示正常时,这很有效。 当有更多项目向下滚动时,会出现问题。 最初,当我向下滚动项目显示为空白时, GridLayout容器就在那里,显示图像的代码会运行,但它们不会出现在屏幕上,如下所示: 如果我向上滚动,然后再次向下滚动,图像会出现在它们应该的位置: 看起来我需要刷新布局或告诉渲染器某些内容已发生变化,但我尝试的任何东西似乎都没有做任何事情。 我试过调用requestLayout并invalidate但它似乎没有解决问题。 我还注册了一个GlobalOnLayoutListener,但这并没有更好。 这是相关的代码: 这是我的onBindViewHolder方法 final GridLayout grid = ((KKAlbumViewHolder) holder).mGridLayout; grid.removeAllViews(); int width = grid.getWidth(); if(width > 0) { albumHolder.setPreviewImages(posts); }else { albumHolder.itemView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { […]

以编程方式在GridLayout中设置layout_column和layout_row

我有一个GridLayout(不是GridView),我想添加一些特殊的行和列的视图。 在XML中,我可以使用以下命令设置视图: 但是如何layout_row编程方式设置layout_column和layout_row属性? 我想要这样的东西: GridLayout grid = new GridLayout(getActivity()); grid.setColumn(2); grid.setRow(4); grid.addView(new Button(getActivity());

GridLayout在列中对齐子项

我有一个由6个孩子组成的GridLayout 。 它的列数为2.左列的子layout_gravity为start|end|fill_horizontal , layout_width为0dp,这使它们填充所有可用空间。 这很棒,并给出了如下所示的输出。 视图4,5和6只有它们需要的大小。 很酷。 我现在想将视图4,5和6对准容器的右侧,但事实certificate这很有挑战性。 由于GridLayout确定列灵活性的方式,给右列的视图right的layout_gravity破坏了布局。 第一列中的视图不再填充布局中的剩余宽度。 (根据我的理解,这是因为现在两列都有子项定义水平重力,因此GridLayout不能再将一列标记为灵活)。 有没有办法实现这个目标? 我真的不喜欢嵌套LinearLayout 。 以下是我想要的结果。 作为参考,当前的视图层次结构XML看起来像……

Android GridLayout中心水平

我正在尝试创建一个具有2列的GridLayout,这些列将居中。 我的设计是: 它看起来像: 而且我希望这个按钮位于中间,并且它们之间的间距非常合适。 可能吗? – 编辑: 我也尝试将它放入LinearLayout,没有结果:

尝试使用ConstraintLayout复制GridLayout列对齐

我是ConstraintLayout的新手,我正在尝试使用ConstraintLayout复制GridLayout提供的相同网格行为。 具体来说,我想设计一个两列网格。 第一列宽度应尽可能窄,而第二​​列应占用所有剩余的水平空间。 当然,第二列应该位于第一列的右侧,或者更确切地说,位于第一列的最宽视图。 我不知道如何使用ConstraintLayout复制最后一个要求。 我不想在两列之间使用网格线,因为第一列不应该具有固定的宽度和百分比宽度,而是应该与其最宽的视图一样宽。 在https://gist.github.com/venator85/499dd82f47b3efbbed7a1e9e1ca1412d我准备了一个布局示例和相应的预览,显示了一个实现我想要的GridLayout。 在该布局中的前两个ConstraintLayout尝试显示C1和D1与B1对齐,C2和D2与B2对齐。 当B2比A2窄时,A1和C1将重叠。 有帮助吗? 谢谢

Android GridLayout等列宽度

是否真的不可能在Android GridLayout中轻松强制相等的列宽? 尝试明显的布局…… …将最右边的按钮放在一个明显比其他三个更宽的列中。 (使用按钮文本播放,你可以很容易地得到更糟糕的例子。) 我阅读了关于GridLayouts中空间分布过多的Android文档,但是看起来很明显甚至列宽也经常(任何可能甚至是典型的)在这样的情况下需要我不得不相信我缺少明显/容易的东西。

android.support.v7.widget.GridLayout无法让它工作

我有一个Android项目,它在大多数菜单和屏幕中使用GridLayout。 但问题是从API 14及以后版本支持GridLayout。 由于我想让应用程序也可用于旧版本的android,我尝试使用Android自己的支持库GridLayout ,它增加了对API 7的支持。这正是我所寻找的,但是我不能为我的生活让它工作。 我尝试了所有这些解释和想法: Android的官方说明 解决方案1 解决方案2 解决方案3 解决方案4 解决方案5 和更多… 无论我做什么,我是怎么做的,或者我使用的是什么IDE(无论是Eclipse ADT还是Android Studio),它总是在布局XML中给我一个错误: The following classes could be instantiated: – android.support.v7.widget.GridLayout With either one of these exceptions showing in the error log: 1. android.content.res.Resources$NotFoundException: Could not resolve value 0x7F080000 2. java.lang.classnotfoundexception: android.support.v7.gridlayout.R$dimen 编辑:作为参考,这是我用来创建支持gridlayout(直接从android示例程序): 如果上述解决方案都不起作用,我可能做错了什么? 有什么我想念的,也许我的原始代码有问题吗? 任何帮助表示赞赏

如何以编程方式将android:layout_columnWeight =“1”设置为android支持v7 Gridlayout中的元素

我正在尝试以编程方式使用2列构建GirdLayout,并且我希望这些列的宽度设置为屏幕宽度的一半。 我想你可以从API 21或支持v7 GirdLayout视图执行此操作。 我看到使用android:layout_columnWeight =“1”的示例来执行此操作。 但我无法find如何以编程方式执行此操作。 任何人都可以帮我解决这个问题吗? package com.tunify.v3.component; import java.util.ArrayList; import android.support.v7.widget.GridLayout; import android.util.DisplayMetrics; import android.util.TypedValue; import android.view.ViewGroup; import com.tunify.asme.data.ChangeableSelectionParameterValue; public class ChangeableSelectionParameters extends GridLayout{ //private ArrayList selectionParameterViews; private ArrayList selectionParameterValues; private static final int ITEM_PADDING_LEFT_DP = 0; private static final int ITEM_PADDING_RIGHT_DP = 0; private static final int ITEM_PADDING_TOP_DP = 0; private […]

在RecyclerView的末尾添加空间

我有一个带有gridlayout的recyclerview。 我想要的是当用户滚动到列表的末尾( 请参阅我的坏模型 )时,应该有一个高度为50dp的空白空间,这与我的网格尺寸不同。 请注意,此空间仅在最末端可见,因为我不想更改布局。 我可以这样做,以便recycerview的边距为50dp,但我不想这样做。