У меня есть следующий макет:setLayoutParams не работает на ToggleButton
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableLayout
android:id="@+id/master_table"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="1">
</TableLayout>
</LinearLayout>
В коде я добавить некоторые кнопки в макет таблицы, который заполнит добавил кнопки на 4 в ряд:
Чтобы добавить кнопки:
TableRow row = createTableRow();
row.addView(createToggleButton(R.id.button1, getResources().getText(R.string.button1)));
row.addView(createToggleButton(R.id.button2, getResources().getText(R.string.button2)));
row.addView(createToggleButton(R.id.button3, getResources().getText(R.string.button3)));
row.addView(createToggleButton(R.id.button4, getResources().getText(R.string.button4)));
TableLayout parent = (TableLayout)findViewById(R.id.master_table);
parent.addView(firstRow);
Оригинальная версия createToggleButton (метод):
private ToggleButton createToggleButton(int id, CharSequence text) {
ToggleButton button = new ToggleButton(this);
button.setId(id);
button.setTextOff(text);
button.setTextOn(text);
button.setChecked(false);
button.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.button, this.getTheme()));
button.setTextColor(getResources().getColorStateList(R.color.button_color));
return button;
}
Эта работа, мои кнопки добавлены в представление. Но когда я пытаюсь применить LayoutParams, как показано ниже:
private ToggleButton createToggleButton(int id, CharSequence text) {
ToggleButton button = new ToggleButton(this);
// This line cause the button disappeared !?
button.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1.0f));
button.setId(id);
button.setTextOff(text);
button.setTextOn(text);
button.setChecked(false);
button.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.button, this.getTheme()));
button.setTextColor(getResources().getColorStateList(R.color.button_color));
return button;
}
Мои кнопки больше не будут появляться на виду, даже хотя есть ошибки не произошло. Что здесь происходит?
Если вы откатить использовать "оригинальную версию" это действительно работает? Я сомневаюсь –