3

У меня возникли проблемы с созданием приложения Material Design с темой AppCompat v21. Сначала у меня есть тема для приложения, использующая свет AppCompat с темной панелью действий.Конструкция материала обратная spinner/тема edittext с использованием AppCompat

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Main theme colors --> 
    <!-- your app branding color for the app bar --> 
    <item name="colorPrimary">@color/theme_color</item> 
    <!-- darker variant for the status bar and contextual app bars --> 
    <item name="colorPrimaryDark">@color/theme_color_dark</item> 
    <!-- theme UI controls like checkboxes and text fields --> 
    <item name="colorAccent">@color/theme_color_accent</item> 
</style> 

Цвета для моего приложения довольно темные, поэтому я использую вариант DarkActionBar. Моя проблема в том, что у меня есть несколько макетов, где я бы хотел поставить Spinner и EditText внутри макета, где фон - это мой theme_color, который темный. В результате получается Spinner/EditText с черным цветом на темном фоне. Как я могу заставить стиль/тему этих элементов управления использовать вариант Dark, чтобы они отображались с белым текстом вместо черного текста. Даже хуже того, мне нужен прядильщик, чтобы показать белый текст, но выпадающие элементы спиннера, чтобы показать светлую версию.

+0

AutoCompleteTextView не стилизованную пока - смотрите здесь для более подробной информации: https://code.google.com/p/android/issues/detail? id = 77742 – ahmedre

ответ

-1

Как об этом ..

сделать стиль для вас виджете например:

<style name="CustomEditText" parent="android:Widget.EditText"> 
     <item name="android:textColor">@color/red</item> 
</style> 

затем в вашем XML добавить этот атрибут к вашему EditText

style="@style/CustomEditText" 
+0

Я мог бы только t его, скорее всего, приведет к некоторым элементам управления франкенштейна. Я имею в виду, что было бы лучше использовать темный контроль над AppCompat. Потому что в этом случае все будет правильно скрашено. Я просто не знаю, как использовать AppCompat dark только для пары элементов управления –

0

Я использую Spinner внутри панели инструментов с темным фоном и помнил, что приложение Google I/O Android делает то же самое, поэтому я посмотрел на его стили - точнее, ActionBarThemeOverlay here.

После того как я использовал ниже атрибуты на моей теме, мой Spinner цвет фона («стрелка») изменилась:

<item name="colorControlNormal">#fff</item> 
<item name="colorControlHighlight">#3fff</item> 

colorControlHighlight цвет, когда пользователь нажимает на Spinner. Тем не менее, я не тестировал EditText.

0

Итак, вы ищете способ применения другой темы для выбора видов. Там нет XML-единственный способ сделать это для большинства элементов (кроме Toolbar, которые вы уже знаете)

Вы должны раздуть точку вручную, используя ContextThemeWrapper:

ContextThemeWrapper wrapper = new ContextThemeWrapper(getActivity(), 
    R.style.Theme_AppCompat); // The dark one 
LayoutInflater footPump = LayoutInflater.from(getActivity()).cloneInContext(wrapper); 
// Note null as second argument -- if you pass in parent view, theme will 
// be taken from the parent 
Spinner spinner = (Spinner) footPump.inflate(R.layout.spinner, null); 

иметь расположение ресурсов для Inflater, просто создать одностраничный просмотр XML-файл:

<!-- res/layout/spinner.xml --> 
<?xml version="1.0" encoding="utf-8"?> 
<Spinner xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 
Смежные вопросы