2017-02-25 6 views
0

LinearLayoutにツールバーをプログラムで追加する方法。 以下のコードを試しましたが、動作しません。LinearLayoutにプログラムでツールバーを追加する方法

私のクラスはFragmentActivityを拡張します。コードの下

Toolbar toolbar = new Toolbar(this); 
Toolbar.LayoutParams toolBarParams = new Toolbar.LayoutParams(
     Toolbar.LayoutParams.MATCH_PARENT, 
     R.attr.actionBarSize 
); 
toolbar.setLayoutParams(toolBarParams); 
toolbar.setBackgroundColor(Color.BLUE); 
toolbar.setPopupTheme(R.style.AppTheme_PopupOverlay); 
toolbar.setVisibility(View.VISIBLE); 
LinearLayout ll = (LinearLayout) findViewById(R.id.activity_search); 
ll.addView(toolbar); 
+0

'R.attr.actionBarSize'は、属性のためのリソース識別子です。実際のサイズではありません。あなたはそれを得るために[この投稿](http://stackoverflow.com/a/7913610)に示されているような何かをする必要があります。それを超えて、どのくらい正確に動作していないのですか? –

+0

R.attr.actionbarSizeを100に変更しても、何も表示されません。 – Nikhil

+1

OK、その他の可能性のある問題: 'Toolbar'は' LinearLayout'に入っていますので、 'Toolbar.LayoutParams'ではなく' LinearLayout.LayoutParams'が必要です。 'LinearLayout'が期待どおりの向きになっていることを確認してください。また、 'LinearLayout'の既存の子' View'が既にそれを埋めていないことを確認し、その外に 'Toolbar'を押してください。他の子 'View'sの前に' Toolbar'を挿入したい場合は、 'addView(View、int)'メソッドを使って特定のインデックスに追加してください。 –

答えて

0

変更後の働いている:

 Toolbar toolbar = new Toolbar(this); 
     LinearLayout.LayoutParams toolBarParams = new LinearLayout.LayoutParams(
       Toolbar.LayoutParams.MATCH_PARENT, 
       150 
     ); 
     toolbar.setLayoutParams(toolBarParams); 
     toolbar.setBackgroundColor(Color.BLUE); 
     toolbar.setPopupTheme(R.style.AppTheme_PopupOverlay); 
     toolbar.setVisibility(View.VISIBLE); 


     LinearLayout ll = (LinearLayout) findViewById(R.id.activity_search); 
     ll.addView(toolbar, 0); 
関連する問題