2016-04-05 3 views
4

Ich verwendete App Kompat Thema Stil.Popup-Menü Teiler für App Kompat Thema

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="android:popupMenuStyle">@style/PopupMenu</item> 
     <item name="android:itemTextAppearance">@style/myCustomMenuTextApearance</item> 
     <item name="android:listPopupWindowStyle">@style/PopupMenuStyle</item> 

    </style> 
    <style name="PopupMenuStyle" parent="Widget.AppCompat.ListPopupWindow"> 
     <item name="android:divider">@drawable/devider</item> 
     <item name="android:dividerHeight">2dp</item> 
    </style> 

    <style name="PopupMenu" parent="@android:style/Widget.PopupMenu"> 
     <item name="android:popupBackground">@color/search_panel_color</item> 
     <item name="android:textColor">@color/activity_button_text_color</item> 
     <item name="android:shadowColor">@color/activity_theam_color</item> 


    </style> 

    <style name="myCustomMenuTextApearance" parent="@android:style/TextAppearance.Widget.TextView.PopupMenu"> 
     <item name="android:textColor">@color/activity_theam_color</item> 
    </style> 

Ich möchte einen Teiler in meinem Menüpunkt hinzuzufügen. Ich habe so viele Dinge ausprobiert, aber der Teiler wird nicht angewendet ... Gibt es eine Möglichkeit, den Teiler zu zeigen?

+0

Haben Sie 'dropDownListViewStyle' versucht? –

+0

ja ich habe es versucht. funktioniert nicht –

+0

Es funktioniert gut mit mir –

Antwort

1

Ich habe eine solution.you können Popup nach Ihrer Wahl durch programming.use unten Code entwerfen Popup-Menü anzuzeigen .

private ListPopupWindow listPopupWindow; 
listPopupWindow = new ListPopupWindow(getApplicationContext()); 
listPopupWindow.setWidth(400); 
listPopupWindow.setDropDownGravity(Gravity.CENTER); 
listPopupWindow.setAdapter(new listpopupadapter(a, type)); 
listPopupWindow.setAnchorView(v); 
listPopupWindow.show(); 

Hier ist listpopupadapter Klasse, um Ihre Liste wie folgt zu entwerfen.

public class listpopupadapter extends BaseAdapter { 
    ArrayList<String> a; 
    String type; 

    public listpopupadapter(ArrayList<String> a, String type) { 
     this.a = a; 
     this.type = type; 
    } 

    @Override 
    public int getCount() { 
     return a.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return getItem(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @SuppressLint("ViewHolder") 
    @Override 
    public View getView(final int position, View convertView, 
      ViewGroup parent) { 
     // TODO Auto-generated method stub 
     View root = LayoutInflater.from(parent.getContext()).inflate(
       R.layout.raw_filter, null); 
    } 
} 
+0

funktioniert .. danke !! Dies ist benutzerdefinierte Stil kann es für jeden Stil arbeiten. –

0

Ich habe eine Treiber-App gemacht, die ein Popup benötigt, die Fahrt kam, zu dieser Zeit habe ich diese verwendet. Also bitte versuchen Sie es. Vielleicht wird es helfen.

<activity 
    android:name="driver_activity_name 
    android:theme="@android:style/Theme.Translucent.NoTitleBar" /> 
+0

Ihre Antwort sollte an die Frage –

+0

angepasst werden und was ist der Name Ihrer Fahreraktivität, ich meine, wo ich dies anwende? Ich habe Aktivität mit benutzerdefinierten Popup-Menü, –

+0

✞ Sie bereits in Manifest definiert, nur Filter mit diesem Thema hinzufügen. Vielleicht seine Works ✞ –

1

Ich schlage vor, Sie Dummy-Gruppen hinzufügen, versuchen auf diese Weise

<group> 
    <!--add it like as a separator--> 
    <item 
     android:title="" 
     android:showAsAction="always" 
     android:enabled="false" /> 
</group> 
+0

Ich werde dies versuchen. Funktioniert nicht –

2

Von Ihrem Thema Stil, ich erraten Sie Toolbar verwendet. Ist Ihr Menü Popup von Toolbar angezeigt? Wenn dies der Fall ist, können Sie den folgenden Schritt anpassen.

definieren das Thema

<style name="AppToolbarPopupTheme" parent="Widget.AppCompat.PopupMenu.Overflow"> 
    <item name="android:dropDownListViewStyle">@style/AppDropDownListViewStyle</item> 
</style> 

<style name="AppDropDownListViewStyle" parent="Widget.AppCompat.ListView.DropDown"> 
    <item name="android:divider">@drawable/line_divider</item> 
    <item name="android:dividerHeight">1dp</item> 
</style> 

Dann bewerben Sie sich um das Thema zu Toolbar

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:popupTheme="@style/AppToolbarPopupTheme"> 

</android.support.v7.widget.Toolbar> 
1

Mit einem Material Thema entfernt Teiler. Vielleicht ist dies die einfache Lösung für dieses Problem.

Sie können dieses oder ein Holo Thema versuchen (das heißt @android: Stil/Widget.ListPopupWindow)

Teiler Effekt in Popup zu bekommen
<!-- Change Overflow Menu ListView Divider Property --> 
<style name="PopupMenuListView" parent="android:Widget.ListPopupWindow"> 
    <item name="android:divider">#FF0000</item> 
    <item name="android:dividerHeight">2dp</item> 
</style> 
+0

funktioniert nicht gor mich .. versucht –

2

Ich habe auch das gleiche Problem. Die Lösung ist wie folgt:

<style name="PopupMenuListView" parent="@style/Widget.AppCompat.ListView.DropDown"> 
    <item name="android:divider">#000000</item> 
    <item name="android:dividerHeight">1dp</item> 
</style> 
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:dropDownListViewStyle">@style/PopupMenuListView</item> 
</style> 

Sie auch auf den folgenden Link beziehen: How to add dividers between specific menu items?

1

wenn Sie nicht die Antwort auf diese Frage gefunden haben, dann ist dies, wie es für mich gearbeitet, den Stil mit :

<style name="PopupMenu"> 
    <item name="android:itemBackground">@color/background_medium_gray</item> 
    <item name="android:background">@android:color/transparent</item> 
    <item name="android:textColor">@android:color/black</item> 
    <item name="android:colorBackground">@color/BackgroundGray</item> 
    <item name="android:dividerHeight">1dp</item> 
</style> 

    Context context = new ContextThemeWrapper(getActivity(), R.style.PopupMenu); 
    final PopupMenu popupMenu = new PopupMenu(context, view); 

    final MenuInflater menuInflater = popupMenu.getMenuInflater();