相关疑难解决方法(0)

如何修复放置在工具栏顶部的Android 4.x的Spinner样式

根据Android文档,Spinner小部件支持Material Design样式.

所以我决定在我的应用程序中使用它将它放在工具栏的顶部.

布局/ activity_base.xml

<android.support.v7.widget.Toolbar
    android:id="@+id/my_awesome_toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:elevation="5dp"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
    <Spinner
        android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
 </android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

活动主题

<style name="BaseAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/omni_primary_color</item>
    <item name="colorPrimaryDark">@color/omni_primary_color_dark</item>
    <item name="colorAccent">@color/omni_accent_color</item>
</style>
Run Code Online (Sandbox Code Playgroud)

BaseActivity.java

public class BaseActivity extends ActionBarActivity {

    @InjectView(R.id.my_awesome_toolbar)
    Toolbar mToolbar;

    @InjectView(R.id.spinner)
    Spinner spinner;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_base);
        ButterKnife.inject(this);
        //setup toolbar
        setSupportActionBar(mToolbar);
        getSupportActionBar().setDisplayShowTitleEnabled(false);
        mToolbar.setNavigationIcon(R.drawable.ic_action_navigation_menu);

        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(mToolbar.getContext(),
                R.array.planets_array, R.layout.support_simple_spinner_dropdown_item);
        adapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
    }
}
Run Code Online (Sandbox Code Playgroud)

在棒棒糖旋转器和下拉列表看起来很好,虽然下拉背景颜色是黑色比菜单下拉列表是白色.我猜这app:popupTheme="@style/ThemeOverlay.AppCompat.Light"不会传播到微调器.

Android 5.0

在此输入图像描述 在此输入图像描述

现在最大的问题是Android 4.x下拉背景颜色是白色(popupTheme传播?)和微调器旁边的图标是黑色.

Android 4.4

在此输入图像描述

如何在XML中正确设置它或在代码中实现它以使其适用于Android 5和4?理想情况下,我希望在Android …

android android-layout android-spinner android-toolbar

49
推荐指数
3
解决办法
6万
查看次数

Android:如何将微调器选择器设置为自己的图像/图标?

我已经搜索并测试在Spinner中设置我自己的图像/图标但是我收到错误.

我有风格设置背景图像的alrady,但然后右侧的微调图标不再显示.

当我喜欢的时候,我找到一个这样的例子:

<Spinner style="@style/Spinner" android:spinnerSelector="@drawable/myspinner_selector" />
Run Code Online (Sandbox Code Playgroud)

这是myspinner_selector.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_first="true"
   android:drawable="@drawable/arrowdown"
   />    
<item android:state_middle="true" 
   android:drawable="@drawable/arrowdown"
   />       
<item android:state_last="true"
   android:drawable="@drawable/arrowdown"
   />   
<item android:state_single="true"
   android:drawable="@drawable/arrowdown"
   />
Run Code Online (Sandbox Code Playgroud)

但它是XML旋转器的第一个我得到这个错误:

No resource identifier found for attribute 'spinnerSelector' in package 'android' `main.xml`
Run Code Online (Sandbox Code Playgroud)

所有的例子我可以在互联网上使用像这样的微调器选择器的样式,但我无法让它工作,也无法spinnerSelectordeveloper.android.com上的参考指南中找到.

android coding-style spinner

5
推荐指数
1
解决办法
1万
查看次数

如何用图像替换 Android 中微调器的图标箭头?

我想使用自定义图像更改 Android 中的默认微调器图标箭头。

我制作了自定义微调器(基于这个答案:How to custom a Spinner in Android,只需更改自定义值)并且它运行良好,但我无法在样式或编程方式上更改微调器的箭头。

我看到这个问题:How to Change image of a spinner但由于我没有标签,Spinner它不允许我添加属性android:spinnerSelector

如何用图像替换默认箭头图标?

提前致谢!

android

2
推荐指数
1
解决办法
2万
查看次数