因此,基本上视图应根据项目数量进行调整,而不会声明列大小和行大小.这对GrIDLayout来说可能吗?如果没有,那么忘记这个问题.
现在让我们到达方形部分.我尝试实现此代码
public class SquarelinearLayout extends linearLayout { public SquarelinearLayout(Context context,AttributeSet attrs) { super(context,attrs); } @OverrIDe protected voID onMeasure(int wIDthMeasureSpec,int heightmeasureSpec) { final int wIDthSize = MeasureSpec.getSize(wIDthMeasureSpec); final int heightSize = MeasureSpec.getSize(heightmeasureSpec); if (wIDthSize == 0 && heightSize == 0) { super.onMeasure(wIDthMeasureSpec,heightmeasureSpec); final int minSize = Math.min(getMeasureDWIDth(),getMeasuredHeight()); setMeasuredDimension(minSize,minSize); return; } final int size; if (wIDthSize == 0 || heightSize == 0) { size = Math.max(wIDthSize,heightSize); } else { size = Math.min(wIDthSize,heightSize); } final int newMeasureSpec = MeasureSpec.makeMeasureSpec(size,MeasureSpec.EXACTLY); super.onMeasure(newMeasureSpec,newMeasureSpec); }}
尽管它确实使子布局成为正方形,但它也占据了屏幕的整个宽度,将其他孩子推出布局的可视部分.
你有任何链接,或者你自己有一个类似于这个类的代码,但不占用布局的整个宽度?提前致谢.
解决方法 从来没有我使用上面相同的代码工作,并将项目放在tableLayout而不是GrIDlayout.这是一个示例代码,如果你像我一样陷入这种情况.首先,我为正方形创建一个布局.
<?xml version="1.0" enCoding="utf-8"?><com.androID.f45tv.vIEw.ui.SquarelinearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:ID="@+ID/sllContainer" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:padding="2dp" androID:orIEntation="vertical"> <linearLayout androID:ID="@+ID/llHolder" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:padding="2dp" androID:gravity="center" androID:orIEntation="vertical"> <TextVIEw androID:ID="@+ID/tvname" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:textSize="18sp" androID:textcolor="@color/white" androID:layout_marginBottom="2dp" androID:gravity="center_horizontal" /> <TextVIEw androID:ID="@+ID/tvPercent" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:textSize="40sp" androID:textcolor="@color/white" androID:gravity="center" /> <TextVIEw androID:ID="@+ID/tvBPM" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:textcolor="@color/white" androID:textSize="12sp" androID:gravity="end" /> <TextVIEw androID:ID="@+ID/tvBPMLabel" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:text="bpm" androID:textSize="10sp" androID:textcolor="@color/white" androID:gravity="end" /> </linearLayout></com.androID.f45tv.vIEw.ui.SquarelinearLayout>
然后将其添加到我的主活动布局中,并在表格行中包含一个include标记.
总结以上是内存溢出为你收集整理的android – 带有方形子项的Gridlayout全部内容,希望文章能够帮你解决android – 带有方形子项的Gridlayout所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)