小编Mil*_*ilk的帖子

Android Spinner工具栏样式

如何在工具箱中实现微调器的材料设计?我试过以下但是我的微调器看起来像这样

在此输入图像描述

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:background="@color/main_color"
    app:contentInsetLeft="14dp"
    app:contentInsetRight="14dp"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:theme="@style/ThemeOverlay.AppCompat.ActionBar">

    <Spinner
        android:id="@+id/spinner_nav"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

我的最低sdk是15.

在我的onCreate上

ButterKnife.inject(this);

    mToolbar.inflateMenu(R.menu.menu_login);
    mToolbar.setTitle(R.string.sign_in);
    mToolbar.setOnMenuItemClickListener(this);

    SpinnerAdapter spinnerAdapter = ArrayAdapter.createFromResource(this,
            R.array.options, android.R.layout.simple_spinner_dropdown_item);

    mSpinner.setAdapter(spinnerAdapter);
    mSpinner.setOnItemSelectedListener(this);
Run Code Online (Sandbox Code Playgroud)

菜单是一张临时的纸张,总是与App Bar重叠,而不是作为App Bar的扩展.

任何链接都将是一个很大的帮助

UPDATE

我设法实现了我想要的

在此输入图像描述

我用过这个

 ButterKnife.inject(this);

        mToolbar.setTitle(R.string.sign_in);
        setSupportActionBar(mToolbar);

        SpinnerAdapter spinnerAdapter = ArrayAdapter.createFromResource(getSupportActionBar().getThemedContext(),
                R.array.options, android.R.layout.simple_spinner_dropdown_item);

        getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
        getSupportActionBar().setListNavigationCallbacks(spinnerAdapter, this);
Run Code Online (Sandbox Code Playgroud)

和我的xml

  <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:background="@color/app_secondary_color"
        app:contentInsetLeft="14dp"
        app:contentInsetRight="14dp"
        app:popupTheme="@style/ThemeOverlay.AppCompat"
        app:theme="@style/ThemeOverlay.AppCompat.ActionBar">

    </android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

但是如何将其设为白色并且菜单的文本颜色为蓝色?我也有这个问题.它似乎太遥远了?任何方法来修复此下拉箭头?

在此输入图像描述

更新2

在花了这么多时间尝试之后,我已经实现了如何使它成为白色并且文本颜色通过这个变黑.我已经为下拉样式创建了自定义布局

<?xml version="1.0" encoding="utf-8"?>

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?android:attr/spinnerDropDownItemStyle"
    android:singleLine="true"
    android:layout_width="match_parent"
    android:background="@color/background_material_light"
    android:textColor="@color/abc_primary_text_material_light"
    android:layout_height="48dp"
    android:ellipsize="marquee"/>
Run Code Online (Sandbox Code Playgroud)

然后在我的oncreate上添加了这段代码

 spinnerAdapter.setDropDownViewResource(R.layout.custom_simple_spinner_dropdown_item);
Run Code Online (Sandbox Code Playgroud)

我遇到的唯一问题是按下状态不起作用,它只是一个白色的平面.如果你在另一个弹出菜单上看到,当你点击一个项目时,背景颜色变得有点暗.此烦人的图标仍然离文本太远.

android android-layout material-design

28
推荐指数
1
解决办法
6826
查看次数

标签 统计

android ×1

android-layout ×1

material-design ×1