Я новичок в разработке Android, обладаю большим опытом в программировании для настольных компьютеров и веб-приложений, и только начинаю понимать, как работают макеты представлений. Я использовал линейные макеты и веса ранее, чтобы решить свои проблемы с дизайном, но из-за (я считаю), что этот дизайн не является равномерно табличным, я борюсь.
Я хочу Tag5 рядом с Tag0 и под 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>