2016-07-03 20 views
0

Ich verwende folgenden Code, um Menü zu erstellen, wenn ich auf die Schaltfläche klicken, zeigen Sie Popup-Animation, wie Sie es deaktivieren?Wie Menü Popup-Animation zu deaktivieren

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="android:popupAnimationStyle">@null</item> 
</style> 

Antwort

0

Popup-Animation können von Ihrem Stil geändert werden Aktivität. Zum Beispiel hat Popup-Animation in meinem Fall Probleme mit Huawei-Geräten. Also muss ich die Animation nur für Huawei deaktivieren. So mache ich es:

Context wrapper = this; 
if ("huawei".equalsIgnoreCase(android.os.Build.MANUFACTURER)) { 
    wrapper = new ContextThemeWrapper(context, R.style.NoPopupAnimation); 
} 
PopupMenu popup = new PopupMenu(wrapper, view, Gravity.END); 
0
<style name="NoPopupAnimation" parent="Widget.AppCompat.PopupMenu"> 
    <item name="android:popupAnimationStyle">@null</item> 
</style> 

Und:

Context wrapper = new ContextThemeWrapper(this, R.style.NoPopupAnimation); 
PopupMenu popup = new PopupMenu(wrapper, view, Gravity.END); 

Mit dieser Art und Weise müssen Sie nicht den Stil für die ganze

setContentView(R.layout.activity_test_create_menu_in_code); 

    View b = findViewById(R.id.b); 
    final PopupMenu m = new PopupMenu(this, b); 
    m.getMenu().add(0, 1, 0, "Create"); 
    b.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      m.show(); 
     } 
    });