2017-08-28 7 views
0

設定メニューをカスタマイズしたり、その機能で何かを作成しようとしています。私は現在、タイトルと設定ボタン(カスタムアイコン付き)を備えたツールバーを持っています。このボタンはのPopupMenuをこのように開きます。Androidのドロップダウン設定メニュー

btnOpenMenu.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 

     PopupMenu popupMenu = new PopupMenu(HomeActivity.this, view){ 
      @Override 
      public void setOnMenuItemClickListener(@Nullable OnMenuItemClickListener listener) { 
       super.setOnMenuItemClickListener(listener); 
      } 
     }; 

     popupMenu.inflate(R.menu.menu); 
     popupMenu.show(); 


    } 
}); 

画像に示すように、ポップアップメニューが動作しているが、私は、少なくともそれ全幅と中央のテキストを作るために、ビューをカスタマイズするために、今必要があります。

dropdown menu

ポップアップメニューでこれを行うことはできますか?メニューの幅を広げて幅いっぱいにするにはどうすればいいですか?

ありがとうございます。

答えて

1

これにはListPopUpWindowを使用できます。利点は、画像内の文字列のリストなどを配置するためにレイアウトをカスタマイズすることができることです。このコードを使用してみてください。

ListPopupWindow listPopupWindow; 
setUpListpopupWindow(); 
btnOpenMenu.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 

     listPopupWindow.show(); 
    } 
}); 

リストポップアップウィンドウをここに設定します。

public void setUpListpopupWindow() { 
    listPopupWindow = new ListPopupWindow(BluetoothActivity.this); 
    listPopupWindow.setAnchorView(btnOpenMenu); 
    DisplayMetrics metrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(metrics); 
    listPopupWindow.setWidth(metrics.widthPixels); //sets width as per the screen. 
    listPopupWindow.setHeight(ListPopupWindow.WRAP_CONTENT); 
    listPopupWindow.setModal(true); 

    View filterLayout = getLayoutInflater().inflate(R.layout.your_awesome_custom_layout, null); 

    listPopupWindow.setPromptView(filterLayout); 
} 
+0

ありがとう..私は助けてうれしいです.. –

1

代わりにポップメニューを使用して、フル幅にしてテキストを中央に配置します。それは本当に簡単だとは思わない。

なぜあなたはBottom Sheetsを使用しないでください。

利用可能なオープンソースライブラリがたくさんあります。それを使用してください。

+0

ありがとうございました。ありがとうございます! – Chuy

関連する問題