Пустое меню Popup Window в Android - PullRequest
0 голосов
/ 17 февраля 2019

В моем приложении меню в панели действий отображается неправильно.Это все белое и размер не нормальный.Я попытался изменить фон, и я могу видеть текст, но форма все еще не нормальная.

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);

Часть XML, связанная с AppBarLayout

<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 голосов
/ 19 февраля 2019

Я запустил ваш код и получил похожую проблему.Затем я изменил «android: theme» внутри AppBarLayout на новый из пакетов 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 с

"parent =" Theme.MaterialComponents.Light.NoActionBar "

на

"parent =" Theme.MaterialComponents.Light.NoActionBar.Bridge "

в стиле AppTheme .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...