如何更改 appcompat 自动完成弹出文本颜色?
How to change appcompat autocomplete popup text color?
我知道有很多问题和答案,但是 none 对我有用。
我的风格和主题:
<style name="AnnaTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!--
Colors,
and stuff
-->
<item name="android:dropDownItemStyle">@style/DropDownItemStyle</item>
<item name="android:spinnerDropDownItemStyle">@style/DropDownItemStyle</item>
<item name="spinnerDropDownItemStyle">@style/DropDownItemStyle</item>
</style>
<style name="DropDownItemStyle" parent="Widget.AppCompat.Light.DropDownItem.Spinner">
<item name="android:textColor">@android:color/black</item>
</style>
但是结果还是这样:
布局是这样的:
<android.support.design.widget.TextInputLayout
android:id="@+id/til_email"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<AutoCompleteTextView
android:id="@+id/et_email"
android:layout_width="@dimen/join_field_width"
android:layout_height="wrap_content"
android:hint="@string/email"
android:inputType="textEmailAddress"/>
</android.support.design.widget.TextInputLayout>
和适配器:
emailView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, Utils.getUniqueEmailsFromAccount(this)));
大家能帮我把文字变黑吗?
然后试试这个建议...
首先尝试将您的 Adapter
更改为此(如果它不起作用尝试第二个选项:
emailView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, Utils.getUniqueEmailsFromAccount(this)));
1# 创建一个style
如下:
<style name="CustomAuto">
<item name="android:paddingTop">3dp</item>
<item name="android:paddingRight">5dp</item>
<item name="android:paddingBottom">3dp</item>
<item name="android:paddingLeft">5dp</item>
<item name="android:textColor">#000</item>
</style>
2# 创建一个Layout
如下:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/any_id"
style="@style/CustomAuto"
android:singleLine="true" />
3# 将您的 Adapter
更改为:
emailView.setAdapter(new ArrayAdapter<>(this,R.layout.text_custom_view, Utils.getUniqueEmailsFromAccount(this)));
一个简单的解决方案是创建您自己的列表项。因此,创建一个布局 XML 文件并在其中写入以下代码。
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:textColor="@android:color/black"
android:padding="5dp"
android:layout_width="match_parent"
android:singleLine="true"
android:layout_height="wrap_content"/>
并将其传递给适配器的构造函数。
emailView.setAdapter(new ArrayAdapter<>(this, R.layout.that_layout, Utils.getUniqueEmailsFromAccount(this)));
您还可以覆盖适配器:
emailView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, Utils.getUniqueEmailsFromAccount(this))){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView text = (TextView)view.findViewById(android.R.id.text1);
text.setTextColor(Color.BLACK);
return view;
}};
我知道有很多问题和答案,但是 none 对我有用。
我的风格和主题:
<style name="AnnaTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!--
Colors,
and stuff
-->
<item name="android:dropDownItemStyle">@style/DropDownItemStyle</item>
<item name="android:spinnerDropDownItemStyle">@style/DropDownItemStyle</item>
<item name="spinnerDropDownItemStyle">@style/DropDownItemStyle</item>
</style>
<style name="DropDownItemStyle" parent="Widget.AppCompat.Light.DropDownItem.Spinner">
<item name="android:textColor">@android:color/black</item>
</style>
但是结果还是这样:
布局是这样的:
<android.support.design.widget.TextInputLayout
android:id="@+id/til_email"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<AutoCompleteTextView
android:id="@+id/et_email"
android:layout_width="@dimen/join_field_width"
android:layout_height="wrap_content"
android:hint="@string/email"
android:inputType="textEmailAddress"/>
</android.support.design.widget.TextInputLayout>
和适配器:
emailView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, Utils.getUniqueEmailsFromAccount(this)));
大家能帮我把文字变黑吗?
然后试试这个建议...
首先尝试将您的 Adapter
更改为此(如果它不起作用尝试第二个选项:
emailView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, Utils.getUniqueEmailsFromAccount(this)));
1# 创建一个style
如下:
<style name="CustomAuto">
<item name="android:paddingTop">3dp</item>
<item name="android:paddingRight">5dp</item>
<item name="android:paddingBottom">3dp</item>
<item name="android:paddingLeft">5dp</item>
<item name="android:textColor">#000</item>
</style>
2# 创建一个Layout
如下:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/any_id"
style="@style/CustomAuto"
android:singleLine="true" />
3# 将您的 Adapter
更改为:
emailView.setAdapter(new ArrayAdapter<>(this,R.layout.text_custom_view, Utils.getUniqueEmailsFromAccount(this)));
一个简单的解决方案是创建您自己的列表项。因此,创建一个布局 XML 文件并在其中写入以下代码。
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:textColor="@android:color/black"
android:padding="5dp"
android:layout_width="match_parent"
android:singleLine="true"
android:layout_height="wrap_content"/>
并将其传递给适配器的构造函数。
emailView.setAdapter(new ArrayAdapter<>(this, R.layout.that_layout, Utils.getUniqueEmailsFromAccount(this)));
您还可以覆盖适配器:
emailView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, Utils.getUniqueEmailsFromAccount(this))){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView text = (TextView)view.findViewById(android.R.id.text1);
text.setTextColor(Color.BLACK);
return view;
}};