LinearLayout
実行中にボタンを(垂直方向)に追加します...
private void addButtons(String[] titles) {
for (String title : titles) {
Button button = ButtonBuilder.getButton(getActivity());
button.setText(title);
mButtonsLayout.addView(button);
}
}
各ボタンには、XML で定義されたスタイルがあります。
<!-- styles.xml -->
<style name="Button">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:gravity">center</item>
<item name="android:layout_margin">8dp</item>
</style>
layout_margin
すべてのボタンを間隔なしで隣り合わせに配置するように定義しましたが。それらの間にマージンスペースを追加するにはどうすればよいですか?
nmwで示唆されているように、親レイアウトをインフレータに導入しようとしています。
private void addButtons(String[] titles) {
for (String title : titles) {
Button button = ButtonBuilder.getButton(getActivity(), mButtonsLayout);
button.setText(title);
mButtonsLayout.addView(button);
}
}
..
// ButtonBuilder.java
public static Button getButton(Activity activity, ViewGroup parent) {
return (Button)activity.getLayoutInflater().inflate(R.layout.custom_button,
parent);
}
これにより、例外が発生します..
java.lang.ClassCastException: android.widget.LinearLayout cannot be \
cast to android.widget.Button