简体   繁体   English

如何使用 Java 在 Android GridLayout 中设置间距?

[英]How to set spacing in Android GridLayout with Java?

My Java code looks like this :我的 Java 代码如下所示:

Table_And_Login_Layout = new LinearLayout(context);
Table_And_Login_Layout.setId(View.generateViewId());
Table_And_Login_Layout.setBackgroundColor(Color.rgb(88, 188, 218));
Table_And_Login_Layout.setHorizontalGravity(Gravity.CENTER);
Table_And_Login_Layout.setVerticalGravity(Gravity.CENTER);

h = (int)Math.ceil(0.5375 * MainActivity.h);
addView(Table_And_Login_Layout, LinearLayout.LayoutParams.MATCH_PARENT,h);

Table_Layout = new GridLayout(context);
Table_Layout.setColumnCount(col_count);
Table_Layout.setRowCount(row_count);
Table_Layout.setBackgroundColor(Color.rgb(88, 188, 218));

GridLayout.LayoutParams layoutParam=new GridLayout.LayoutParams();
layoutParam.setMargins(10,20,0,10);
Table_Layout.setLayoutParams(layoutParam);

w = (int)Math.ceil(0.82 * MainActivity.w);
h = (int)Math.ceil(0.53611111 * MainActivity.h);
Table_And_Login_Layout.addView(Table_Layout, w,h);

Table_Button = new Button[row_count][col_count];
Table_Button_Layout = new LinearLayout[row_count][col_count];
for (int row = 0; row < row_count; row++)
  for (int col = 0; col < col_count; col++)
  {
    Table_Button[row][col] = new Button(context);
    Table_Button[row][col].setTypeface(Typeface.MONOSPACE);
    Table_Button[row][col].setAllCaps(false);
    Table_Button[row][col].setTextSize(21);
    Table_Button[row][col].setGravity(Gravity.CENTER);
    Table_Button[row][col].setOnClickListener(Table_Button_Listener);

    Table_Button_Layout[row][col] = new LinearLayout(context);
    Table_Button_Layout[row][col].setBackgroundColor(adjustColor(itemColor[selectedColorIndex],1));
    Table_Button_Layout[row][col].setHorizontalGravity(Gravity.CENTER);
    Table_Button_Layout[row][col].setVerticalGravity(Gravity.CENTER);
    Table_Button_Layout[row][col].addView(Table_Button[row][col], buttonW, buttonH);
    Table_Layout.addView(Table_Button_Layout[row][col], buttonW, buttonH);

    GradientDrawable drawable = new GradientDrawable();
    drawable.setShape(GradientDrawable.RECTANGLE);
    drawable.setCornerRadii(new float[] { 8, 8, 8, 8, 8, 8, 8, 8 });
    drawable.setStroke(8, Color.rgb(28,158,218));
    drawable.setColor(Color.rgb(214, 215, 215));
    Table_Button[row][col].setPadding(0, 0, 0, 0);
    Table_Button[row][col].setBackground(drawable);
  }

The screen looks like this :屏幕如下所示:

在此处输入图片说明

But I want to add more space between the first 2 rows, to look like this :但我想在前两行之间添加更多空间,如下所示:

在此处输入图片说明

I did some search for setting space in gridlayout, but couldn't find any answer, what's the right way to do it ?我在 gridlayout 中搜索了设置空间,但找不到任何答案,正确的方法是什么?

Try changing setMargins Value like below:尝试更改 setMargins 值,如下所示:

GridLayout.LayoutParams layoutParam=new GridLayout.LayoutParams();
layoutParam.setMargins(10,20,0,30);
Table_Layout.setLayoutParams(layoutParam);

Comment progres..评论进展..

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM