1

XML ではありますが、以前に使用していたスタイルとまったく同じであるため、スタイルが機能することはわかっています。私がやっていることの簡単な例(動作していない)..

LinearLayout buttonlayout = (LinearLayout) dialogLayout.findViewById(R.id.layout_menu_buttons);

Button bSettings = new Button(getActivity(), null, R.style.button_menu);

buttonlayout.addView(bSettings);

私はそれを XML で完全に動作させました。スタイルなしで問題なくボタンを作成できました (これは機能していましたが、スタイルを動的に適用できませんでした)。

Button bSettings = new Button(getActivity());
    bSettings.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

完全なコード:

    // Getting reference to the Menu layout
    LinearLayout buttonlayout = (LinearLayout) dialogLayout.findViewById(R.id.layout_menu_buttons);
    buttonlayout.removeAllViewsInLayout();

    // Dynamically create buttons       
    Button bSettings = new Button(getActivity(), null, R.style.button_menu);        
    Button bHelp = new Button(getActivity(), null, R.style.button_menu);        
    Button bHistory = new Button(getActivity(), null, R.style.button_menu);     
    Button bAbout = new Button(getActivity(), null, R.style.button_menu);

    // Adding to Layout
    buttonlayout.addView(bSettings);
    buttonlayout.addView(bHelp);
    buttonlayout.addView(bHistory);
    buttonlayout.addView(bAbout);

button_menu スタイル..

<style name="button_menu" parent="@style/Fill.Width">
    <item name="android:background">@drawable/selector_example1_button_background</item>
    <item name="android:layout_margin">10dp</item>
    <item name="android:padding">30dp</item>
</style>

注: DDMS ダンプ ビューを使用して確認したところ、すべてのボタンがそこにあり、すべて正しいテキストなどがあることがわかりました。スタイルに含まれています。

スタイルを設定した後、LayoutParamsを再度設定しようとしましたが、違いはありませんでした。

これでちょっと混乱..

何か案は?

4

2 に答える 2

0

現在のテーマで選択されているスタイルでそれぞれボタン テンプレートを作成し、その XML レイアウトを拡張しました。

Button b = (Button) getLayoutInflater().inflate(R.layout.styled_button, null);

次に、テーマを変更して、ボタンのスタイルを変更します。良い例については、この質問を参照してくださいテーマを動的に変更して、ウィジェットのスタイルを変更します

于 2013-07-17T08:35:13.660 に答える