空菜单Android中的弹出窗口

时间:2019-02-16 21:10:25

标签: android android-layout menu

在我的应用程序中,操作栏中的菜单显示不正确。全是白色,尺寸不正常。我已经尝试过更改背景并且可以看到文本,但是形状仍然不正常。

The menu

菜单正在运行,您可以单击并  打击图片是使用布局检查器拍摄的,

This is a normal menu

This is what I've got

我搜索了几乎所有内容以获取普通菜单,但找不到方法。

  1. 似乎布局没有正确膨胀。
  2. 文本颜色与背景相同。

有什么建议吗?

Sytle

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">#AFDDF6</item>
    <item name="colorPrimaryDark">#9FFFFF</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:actionMenuTextColor">@color/Black</item>
</style>

Menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
            android:id="@+id/action_settings"
            android:title="@string/action_settings"
            android:orderInCategory="100"
            app:showAsAction="never"/>

    <item
            android:id="@+id/action_info"
            android:orderInCategory="200"
            android:title="info"
            app:showAsAction="always"
            android:icon="@android:drawable/ic_dialog_info"/>
</menu>

及其依赖项;

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.1.0-alpha02'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha02'
implementation 'androidx.vectordrawable:vectordrawable:1.1.0-alpha01'
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.appcompat:appcompat:1.1.0-alpha02'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.android.material:material:1.1.0-alpha03'
implementation 'com.google.android.gms:play-services-maps:16.1.0'
implementation 'com.google.android.gms:play-services-places:16.0.0'
implementation 'com.google.maps.android:android-maps-utils:0.4.4'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.2-alpha01'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.2-alpha01'

菜单创建

public boolean onCreateOptionsMenu(Menu menu) {

        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_main, menu);
        return true;
    }

创建时

protected void onCreate(Bundle savedInstanceState) {
    setTheme(R.style.AppTheme);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_test);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    toolbar.setTitle(R.string.MainTitle);

    CollapsingToolbarLayout mCollapsingToolbarLayout = findViewById(R.id.collapsing_toolbar);

与AppBarLayout相关的XML部分

<com.google.android.material.appbar.AppBarLayout
        android:id="@+id/app_bar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <com.google.android.material.appbar.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="48dp"
            app:expandedTitleTextAppearance="@style/ExpandedAppBar"
            app:collapsedTitleTextAppearance="@style/CollapsedAppBar"
            app:expandedTitleGravity="bottom|center_horizontal"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:toolbarId="@+id/toolbar">


        <ImageView
                android:id="@+id/imageview_topMainActivity"
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:scaleType="fitXY"
                android:src="@drawable/header"
                app:layout_collapseMode="parallax"
        />

        <include layout="@layout/toolbar"/>

工具栏XML

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:layout_collapseMode="pin">

</androidx.appcompat.widget.Toolbar>

1 个答案:

答案 0 :(得分:0)

我运行了您的代码,并遇到了类似的问题。然后,我将 AppBarLayout 中的“ android:theme”更改为androidx包中的新内容,菜单内的文本可见:

  <com.google.android.material.appbar.AppBarLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      app:theme="@style/ThemeOverlay.MaterialComponents.ActionBar.Primary"
      >

Your screen

这是您要找的吗?

关于大小,它是androidX中新样式的默认设置。但是,如果您想像以前一样拥有它,那么您需要将

的父项更改为
  

“ parent =” Theme.MaterialComponents.Light.NoActionBar“

  

“ parent =” Theme.MaterialComponents.Light.NoActionBar.Bridge“

以您的 AppTheme 样式。