Java &引用;“均匀分配重量”;编码
我有一个小问题…这是我的代码..有没有一种方法可以让我制作的按钮“平均分配重量”。。我尝试了Java &引用;“均匀分配重量”;编码,java,android,button,Java,Android,Button,我有一个小问题…这是我的代码..有没有一种方法可以让我制作的按钮“平均分配重量”。。我尝试了按钮[I].setWidth()。。但是当我把手机转过来的时候,它看起来很难看。。那么,有没有办法自动分配按钮宽度 ViewGroup row1 = (ViewGroup)findViewById(R.id.TableRow02); ViewGroup row2 = (ViewGroup)findViewById(R.id.TableRow04); ViewGroup row3 =
按钮[I].setWidth()
。。但是当我把手机转过来的时候,它看起来很难看。。那么,有没有办法自动分配按钮宽度
ViewGroup row1 = (ViewGroup)findViewById(R.id.TableRow02);
ViewGroup row2 = (ViewGroup)findViewById(R.id.TableRow04);
ViewGroup row3 = (ViewGroup)findViewById(R.id.TableRow06);
ViewGroup row4 = (ViewGroup)findViewById(R.id.TableRow08);
ViewGroup row5 = (ViewGroup)findViewById(R.id.TableRow10);
Button button[] = new Button[36];
for(int i=1;i<36;i++)
{
button[i] = new Button(this);
if(i==32||i==33||i==34||i==35){button[i].setVisibility(-1);}
button[i].setText("700€");
button[i].setTextSize(10);
button[i].setWidth(20);
// Insert buttons in rows
if(i<8){row1.addView(button[i]);}
else if(i<15){row2.addView(button[i]);}
else if(i<22){row3.addView(button[i]);}
else if(i<29){row4.addView(button[i]);}
else if(i<36){row5.addView(button[i]);}
}
ViewGroup row1=(ViewGroup)findviewbyd(R.id.TableRow02);
ViewGroup row2=(ViewGroup)findViewById(R.id.TableRow04);
ViewGroup row3=(ViewGroup)findViewById(R.id.TableRow06);
ViewGroup row4=(ViewGroup)findViewById(R.id.TableRow08);
ViewGroup row5=(ViewGroup)findViewById(R.id.TableRow10);
按钮按钮[]=新按钮[36];
对于(int i=1;i策略,将按钮置于线性布局中
,并为每个按钮设置android:layout\u weight=“1”
从战略上来说,设计一个像样的UI,一个不包含36个按钮的UI。从战术上来说,将按钮放在线性布局中,并为每个按钮设置android:layout\u weight=“1”
战略上,设计一个美观的UI,一个不包含一行36个按钮。
如普通SWALARE所说,代替设置宽度,你应该考虑设置按钮的权重参数,以实现灵活的布局。
如果希望以编程方式(即在代码中而不是在XML布局中)实现此目的,可以使用按钮的
setLayoutParams
方法。我还没有对其进行测试,但类似的方法应该可以:
// outside of loop
LayoutParams p = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT,
1.0
);
....
// enter loop
....
button[i].setLayoutParams(p);
在本例中,1.0
表示重量。其他两个参数表示layout\u width
和layout\u height
参数
<>但是,我很难想象一个有36个按钮的布局是非常友好的:--/P>< P>正如普通SWALARE所说的,而不是设置宽度,你应该考虑设置按钮的权重参数,以实现灵活的布局。
如果希望以编程方式实现此目的(即在代码中而不是在XML布局中),可以使用按钮的setLayoutParams
方法。我还没有测试过,但类似的东西应该可以工作:
// outside of loop
LayoutParams p = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT,
1.0
);
....
// enter loop
....
button[i].setLayoutParams(p);
在本例中,1.0
表示重量。其他两个参数表示layout\u width
和layout\u height
参数
但说真的,我无法想象一个有36个按钮的布局对用户非常友好:-)这段代码对您有用吗?您正在调用setVisibility(-1)
,但是视图中定义的常量都没有此值。最好使用View.VISIBLE
,View.INVISIBLE
或View.GONE
来代替。是的。。这对我有用。。但是我会做一些更改。您应该尝试用视图替换大部分工作,将其转换为XML布局。使用XML创建静态布局要简单得多,因为您可以在不构建整个应用程序的情况下看到自己在做什么。。但是如果我愿意的话。。我需要定义每个按钮。。那么33行类似的文本?我还有35个文本视图。。。那么再次定义35行代码?:)这段代码对您有用吗?您正在调用setVisibility(-1)
,但是视图中定义的常量都没有此值。最好使用View.VISIBLE
,View.INVISIBLE
或View.GONE
来代替。是的。。这对我有用。。但是我会做一些更改。您应该尝试用视图替换大部分工作,将其转换为XML布局。使用XML创建静态布局要简单得多,因为您可以在不构建整个应用程序的情况下看到自己在做什么。。但是如果我愿意的话。。我需要定义每个按钮。。那么33行类似的文本?我还有35个文本视图。。。那么35行的定义又来了?:)