gpt4 book ai didi

android - 微调项目按下蓝色背景

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:21:09 25 4
gpt4 key购买 nike

我使用微调器来显示下拉列表。我想让列表中的项目有圆角。因此,我使用 9-patch 包含一个带有圆角的图像(在角的外侧透明)作为 View 项目背景,并使用一个选择器在按下时显示不同颜色的 9-patch。

问题:当我按下微调器列表中的项目时,我可以在角落看到蓝色背景,其中 9 色 block 是透明的。

我似乎无法摆脱按下项目时出现的蓝色背景。如果我删除微调器中的 9-patches 和任何设置,我可以看到列表中的项目 View 默认为灰色,按下时为蓝色。

我还尝试不使用 9 个色 block 作为背景,而只使用颜色选择器,并将选择器中按下的颜色设置为透明。然后当我按下该项目时,它不是透明的,而是蓝色的。我认为列表中的 View 确实是透明的,但是按下时背景仍然是蓝色...

我使用自定义 SpinnerAdapter 来创建项目 View 。这是简化的代码:

   private class MySpinnerAdapter implements SpinnerAdapter {
@Override
public View getDropDownView(int i, View recycledView, ViewGroup viewGroup) {
View view = new View(context);
view.setBackground(context.getResources().getDrawable(R.drawable.testspinner));
view.setMinimumHeight(100);
return (View) view;
}
}

用于背景的选择器。这里只有一种颜色,没有 9 色补丁。按下的颜色应该是透明的:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@android:color/transparent" />
<item
android:drawable="@android:color/holo_purple" />

</selector>

我在微调器上设置自定义适配器:

    spinner.setAdapter(new MySpinnerAdapter());

微调器是从 XML 布局中获取的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent" android:layout_height="wrap_content">

<Spinner
android:id="@+id/myDropDown"
android:spinnerMode="dropdown"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:dropDownWidth="match_parent"/>
</LinearLayout>

我已经尝试在 Spinner 上设置许多不同的属性,并尝试了一些样式属性,但我无法摆脱这个蓝色背景......

最佳答案

感谢@Vikram 指出样式的使用。

但是,经过调查发现,Spinner 中按下的项目的背景并非来自您建议的属性,而是来自android:listSelector。所以我可以这样解决问题:

在 styles.xml 中定义一个新样式:

<style name="MyListView">
<item name="android:listSelector">@android:color/transparent</item>
</style>

在 themes.xml 中定义一个新主题:

<style name="MyTheme" parent="@android:style/Theme.NoTitleBar.Fullscreen">
<item name="android:dropDownListViewStyle">@style/MyListView</item>
</style>

将主题应用到我在 AndroidManifest.xml 中的 Activity :

<activity android:name=".MyActivity"
...
android:theme="@style/MyTheme">

关于android - 微调项目按下蓝色背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22322408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com