I've got a little App, that should make use of the Systems default theme. However I've got two problems with that:
First thing is, on one Activity (TemplateView) Android does not apply the theme - or its really different from the rest of the app. Second, spinners an buttons on the ConfigurationView are not affected by the theme either.
I do not programmatically touch buttons and stuff. The only thing is the ArrayAdapter of the spinners, which use the andoird.R.layout.simple_spinner_dropdown_item, which should also be themed if I'm not mistaken.
I've been trying to figure out, what is wrong here, but I can't seem to find it.
My Manifest
<uses-sdk android:minSdkVersion="10"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.VIBRATE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme" >
<activity
android:name="de.isogon.discotalker.viewController.ConfigurationController" android:theme="@android:style/Theme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity><activity android:name="de.isogon.discotalker.viewController.TemplateController"></activity>
<activity android:name="de.isogon.discotalker.viewController.AboutController"></activity>
<activity android:name="de.isogon.discotalker.viewController.DisplayController"></activity>
</application>
</manifest>
ConfigurationView (Themes normally except for the Buttons/Spinners)
<de.isogon.discotalker.views.ConfigurationView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >
<TextView
android:id="@+id/tv_configHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="@string/label_configuration"
android:textAppearance="?android:attr/textAppearanceLarge" />
<AutoCompleteTextView
android:id="@+id/actv_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/tv_configHeader"
android:layout_marginTop="10dp"
android:completionThreshold="1"
android:dropDownHeight="wrap_content"
android:dropDownWidth="match_parent"
android:ems="10"
android:hint="@string/hint_text" >
</AutoCompleteTextView>
<ScrollView
android:id="@+id/scrollView_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/btn_start"
android:layout_below="@+id/actv_text" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<!-- Speed -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/tv_speed"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:layout_weight="1"
android:text="@string/label_speed" />
<SeekBar
android:id="@+id/sb_speed"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:layout_weight="1" />
</LinearLayout>
<!-- Size -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/tv_size"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:layout_weight="1"
android:text="@string/label_size" />
<SeekBar
android:id="@+id/sb_size"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:layout_weight="1" />
</LinearLayout>
<!-- Text Color -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/tv_textColor"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:layout_weight="1"
android:text="@string/label_textcolor" />
<Spinner
android:id="@+id/sp_textcolor"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:layout_weight="1" />
</LinearLayout>
<!-- Text Backgroundcolor -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/tv_textBackgroundColor"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:layout_weight="1"
android:text="@string/label_textbackgroundcolor" />
<Spinner
android:id="@+id/sp_textBackgroundcolor"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:layout_weight="1" />
</LinearLayout>
<!-- Backgroundcolor -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/tv_backgroundcolor"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:layout_weight="1"
android:text="@string/label_backgroundcolor" />
<Spinner
android:id="@+id/sp_backgroundcolor"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:layout_weight="1" />
</LinearLayout>
<!-- Endless -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/tv_endless"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:layout_weight="1"
android:text="@string/label_endless" />
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" >
<CheckBox
android:id="@+id/cb_endless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_gravity="right|center_vertical" />
</RelativeLayout>
</LinearLayout>
<!-- Vibrate/Sound -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/tv_afterRun"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:layout_weight="1"
android:text="@string/label_afterRun" />
<Spinner
android:id="@+id/sp_afterRun"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
</ScrollView>
<Button
android:id="@+id/btn_start"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
android:text="@string/button_start" />
</de.isogon.discotalker.views.ConfigurationView>
TemplateView (Theme completly different - I've no clue why)
<de.isogon.discotalker.views.TemplateView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >
<TextView
android:id="@+id/tv_templatesHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginBottom="10dp"
android:text="@string/label_templates"
android:textAppearance="?android:attr/textAppearanceLarge"
/>
<ListView
android:id="@+id/lv_templateList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_templatesHeader"
android:layout_above="@+id/rl_containerButtons">
</ListView>
<LinearLayout
android:id="@+id/rl_containerButtons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true">
<Button
android:id="@+id/btn_edit"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/button_edit"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_delete"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/button_delete"
android:layout_weight="1"/>
</LinearLayout>
</de.isogon.discotalker.views.TemplateView>
问题是,我使用getContext()方法为第一个视图充气,并使用getApplicationContext()为另一个视图充气。
使用ArrayAdapter扩展进行ListView时,我遇到了类似的问题-解决方法是使用MyActivity.this上下文,而不是getApplicationContext()或getContext()方法。
Had a similar problem related to AppCompat v22.
The activities must extend the AppCompatActivity (instead of Activity) for the AppCompat theme (Material in my case) to be applied to them.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.