2012-03-12 64 views
5

我怎樣風格的Android這樣的PopupMenu?我想要一個灰色的背景和文字前的圖標。風格的PopupMenu的Android

  • 可以解決這個動態中的Java代碼。
  • 修正這個問題有一個全局樣式文件?

這樣的:

<style name="GreenText" parent="@android:style/PopupMenu"> 
    <item name="android:textColor">#00FF00</item> 
</style> 

或者我可以更好的在這個線程構建PopupWindow什麼樣的?

inflate popup menu items programatically

謝謝。

回答

2

我無法找到一個簡單的方法來樣式我PopupMenu的,所以我用「PopupWindow」相反,通過一個ListView給它,它的風格,因爲我想要的。

popView=layoutInflater.inflate(R.layout.pop_layout, null); // layout with a listview to  put in the popup window 
lv=(ListView)popView.findViewById(R.id.pop_listview); // then set listview parameters 

final PopupWindow contentsopupWindow = new PopupWindow(popView,LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
      contentsopupWindow.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.pixel_dot));// set a background so the menu disappears when you click outside it 
      contentsopupWindow.setTouchable(true); 
      contentsopupWindow.setFocusable(true); 
      contentsopupWindow.setOutsideTouchable(true); 
      contentsopupWindow.setTouchInterceptor(new OnTouchListener() { 
      public boolean onTouch(View v, MotionEvent event) { 
        if (event.getAction() == MotionEvent.ACTION_OUTSIDE) { 
         contentsopupWindow.dismiss(); 
         return true; 
         } 
         return false; 
         } 
      }); 
      WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); 


      contentsopupWindow.showAsDropDown(anchorView); 
+0

然後在列表項上單擊使用contentsopupWindow.dismiss();自動關閉窗口 – 2012-12-26 14:15:41