From 790e5f6c1cab43fb377d86d3c9189a509b28b217 Mon Sep 17 00:00:00 2001 From: Diego Perez Date: Tue, 24 May 2016 14:40:34 +0100 Subject: Workaround to display menus for AppCompat themes Layoutlib currently does not implement menus for the support Toolbar. When it detects that an AppCompat theme is being used, it will try to use by default the support Toolbar which breaks the display of menus. This works around the problem by forcing layoutlib to use the framework toolbar in menu previews (regular activities won't display the menu if they use AppCompat). Bug: http://b.android.com/210946 Change-Id: Ic1d162c6d74119ef42895776c3bc3851a9549120 --- .../bridge/src/com/android/layoutlib/bridge/impl/Layout.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/Layout.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/Layout.java index cbd041593d95..1afd90d39f31 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/Layout.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/Layout.java @@ -23,6 +23,7 @@ import com.android.ide.common.rendering.api.SessionParams; import com.android.ide.common.rendering.api.StyleResourceValue; import com.android.layoutlib.bridge.Bridge; import com.android.layoutlib.bridge.android.BridgeContext; +import com.android.layoutlib.bridge.android.RenderParamsFlags; import com.android.layoutlib.bridge.bars.AppCompatActionBar; import com.android.layoutlib.bridge.bars.BridgeActionBar; import com.android.layoutlib.bridge.bars.Config; @@ -232,8 +233,10 @@ class Layout extends RelativeLayout { private BridgeActionBar createActionBar(@NonNull BridgeContext context, @NonNull SessionParams params) { + boolean isMenu = "menu".equals(params.getFlag(RenderParamsFlags.FLAG_KEY_ROOT_TAG)); + BridgeActionBar actionBar; - if (mBuilder.isThemeAppCompat()) { + if (mBuilder.isThemeAppCompat() && !isMenu) { actionBar = new AppCompatActionBar(context, params); } else { actionBar = new FrameworkActionBar(context, params); -- cgit v1.2.3-59-g8ed1b