Проблемы:Представления в пользовательском ListView элемента не apptheme
У меня есть пользовательский адаптер для моего listview
, который в настоящее время содержит checkbox
и edittext
. Я не изменил ни одной темы в папке res/values/styles
. По какой-то причине checkbox
и edittext
имеют другой стиль/тему, чем обычный стиль/тема («AppTheme»).
Автоматически генерируемый тема:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
Но флажок белого цвета, и их можно увидеть только тогда, когда проверяется. (цвет не является цветом). А edittext имеет тот же цвет, который имеет флажок, когда он установлен (зеленый/синий).
цвета:
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
Что я пробовал?
Я попытался установить тему/стиль контейнера элемента и самого элемента, с атрибутами xml android:theme
и style
. Каждый безрезультатно.
Это нормально? Если да, как изменить стиль/тему списка? Если нет, что может быть неправильным?
Мой listitem.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="match_parent" >
<CheckBox
android:id="@+id/cb_listitem"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"/>
<EditText
android:id="@+id/editText_listitem"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="9"
android:textColor="@color/black"/>
</LinearLayout>
GetView на заказ адаптера:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null){
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.listitem_note_checkbox, null);
holder = new ViewHolder();
holder.checkBox = (CheckBox)convertView.findViewById(R.id.cb_listitem);
holder.editText = (EditText)convertView.findViewById(R.id.editText_listitem);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.editText.setText(items.get(position).note);
return convertView;
}
скриншоты:
, как мы можем видеть, радио-кнопки имеют те default layou t, accentcolor «pink», и они имеют серый оттенок. но чекбокс - белый, а акцент - синий/зеленоватый.
Если вы не установили ни одного стиля для своего флажка и edittext, они будут показаны по умолчанию. Я что-то упустил в вашем вопросе? Не могли бы вы опубликовать небольшой скриншот того, что реально и что ожидается? – Rajkiran
ok я опубликую скриншоты через минуту – Anthony
@MikeM. Пробовал это, не работал:/ – Anthony