2016-07-03 1 views
0

メニューを作成するために次のコードを使用します。ボタンをクリックすると、ポップアップアニメーションが表示されます。あなたが全体のスタイルを変更する必要はありません。この方法を使用してメニューポップアップアニメーションを無効にする方法

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

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

答えて

0

ポップアップアニメーションは、あなたのスタイルから変更することができますアクティビティ。たとえば、私の場合、ポップアップアニメーションはHuaweiデバイスで問題があります。ですから、私はHuaweiのアニメーションだけを無効にする必要があります。これは私がそれを作る方法です:

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> 

そして:

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(); 
     } 
    }); 
関連する問題