2014-10-30 69 views
3

我在使用AppCompat v21主題創建材質設計應用時遇到問題。首先,我使用帶有黑色操作欄的AppCompat燈具來開啓我的應用程序主題。使用AppCompat的材質設計逆旋鈕/ edittext主題

<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 2014-11-06 09:33:23

回答

-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黑暗只是爲了一對夫婦的控制 – 2014-11-01 01:45:55

0

我使用一個工具欄內的Spinner內部具有深色背景,並記住Google I/O Android應用程序的功能相同,所以我查看了它的樣式 - 更具體地說,ActionBarThemeOverlay here

我使用後我的主題下面的屬性,我的微調的背景色(「箭頭」)改爲:

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

colorControlHighlight是當用戶按下微調的顏色。不過,我沒有在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); 

有對於充氣佈局資源,只需要創建一個單一視圖的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" />