我是Android开发人员的新手,在桌面和Web应用程序编码方面拥有丰富的经验,而且我只是掌握了视图布局的工作方式。我之前一直在使用线性布局和权重来解决我的设计问题,但是由于(我相信)这个设计不存在,统一表格我正在努力。
我想要Tag5旁边的Tag5和Tag1,然后是旁边的Tag 6和7。到目前为止,我的代码是
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
String tag;
for (int i = 0; i <= 7; i++) {
int indColumn = width / 7;
int indColumnHeight = height / 9;
tag = "#tag" + i;
View tagView = layoutInflater.inflate(R.layout.layout_child, null, false);
Button tagTextView = (Button) tagView.findViewById(R.id.tagTextView);
if (i == 0 || i == 3 || i == 6 || i == 7) {
tagTextView.setWidth(Math.round(indColumn * 2));
} else {
tagTextView.setWidth(Math.round(indColumn));
}
if (i == 0) {
tagTextView.setHeight(Math.round(indColumnHeight * 2));
} else {
tagTextView.setHeight(Math.round(indColumnHeight));
}
tagTextView.setText(tag);
tagLayout.addView(tagView);
我尝试过添加
if(i==5) {
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.RIGHT_OF, 0);
lp.addRule(RelativeLayout.BELOW, 1);
tagTextView.setLayoutParams(lp);
}
在tagTextView.set文本之前,但没有区别
对于单个按钮,xml看起来像这样
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1">
<Button
android:id="@+id/tagTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#a000"
android:textColor="#fff"/>
</RelativeLayout>
答案 0 :(得分:0)
我接受了EasyJoin Dev所说的内容,稍微调整一下,我使用layout_toEndOf和layout_below选项创建了一个Relative布局,然后在活动创建方法中,我以编程方式覆盖宽度和高度,以获得基于百分比的大小调整。 / p>