Articles of android theme

从主题中获取EditText的“默认”颜色值

我有一个包含3.1上的EditText的Activity 。 根据用户输入,我更改EditText中的文本颜色(红色表示错误),然后在文本正常时将其重置为黑色。 一个问题涉及改变活动的整体主题。 例如,将其更改为浅色主题的常规黑暗主题会导致黑色文本显示在黑色背景下 – 因此我需要进入并更改代码,而不是在数据正常时将文本重置为白色。 如果我将主题更改为Activity,而不是必须更改此代码,我想知道是否有办法以编程方式为给定主题拉出默认的EditText文本颜色,然后我可以将文本切换回默认颜色而不是在白色,黑色等硬编码

Spinner默认主题为EditText android

我有EditText ,我想让它显示在Spinner的相同主题中,带有背景和箭头,因为我已经使这个EditText Clickable并且它打开了一个自定义popup窗口

升级到AppCompat v22.1.0版本问题后,获取AppCompat不支持当前主题functionexception

以前我在我的项目中使用AppCompat和版本21.1.2,以便使用工具栏进行材料设计切换。 但升级到AppCompat v22.1.0后,我的应用程序开始变得怪异了。 我甚至尝试了一些如下的解决方案 false true 同时将父主题应用为 但是上述解决方案都没有对我有帮助。 亲切的,请帮助我提出您的提示和建议,以克服我目前面临的问题。 我也发布了styles.xml和logcat错误供您参考。 任何forms的帮助对我都有帮助。 提前致谢。 styles.xml @color/white #F2F2F2 true true false @style/DrawerArrowStyle @color/yellow Logcat错误: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sample.app/com.sample.app.activities.MainActivity}: java.lang.IllegalArgumentException: AppCompat does not support the current theme features at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2413) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471) at android.app.ActivityThread.access$900(ActivityThread.java:175) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:146) at android.app.ActivityThread.main(ActivityThread.java:5602) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) […]

datepicker的风格与活动不同

我有自定义样式的活动,我希望我的活动有一个自定义标题栏,所以我创建了以下样式: @color/titlebar_background @dimen/titlebar_size @style/costum_titlebar 在清单中我使用: 在我使用的活动中: requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); this.getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.setting_activity_titlebar); 到目前为止它很好并且工作正常,我有自定义标题栏的活动。 现在我想使用datePickerDialog。 问题是对话框看起来很旧: 但我希望它看起来像这样: 我也有这种风格: 所以我用它来创建这样的DatePickerDialog: new DatePickerDialog(getActivity(),R.style.AppBaseTheme, this, year, month, day); 但主题不适用。 只是为了测试,我创建了一个默认样式的第二个应用程序,只有一个按钮来打开日期选择器,所以datepicker看起来像我想要的。 这两款应用都有android:minSdkVersion=”8″ 我认为问题出在自定义标题栏上,那么我如何才能获得所需风格的自定义标题栏和日期选择器呢? 编辑: 我更改了android:minSdkVersion=”11″ 同 和 new DatePickerDialog(getActivity(),R.style.datePickerTheme, this, year, month, day); 但结果仍然是一样的。

Context.obtainStyledAttributes()警告

我在这个问题上浪费了3个小时,所以我希望这能节省一些时间。 public TypedArray obtainStyledAttributes (AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes) 第二个参数attrs 必须以严格递增的顺序包含属性标识符,否则属性值将不会被解析,并且调用将无声地失败,就好像该属性不存在一样。 这不是我能看到的记录,我花了很长时间才弄清楚出了什么问题。

更改硬菜单键菜单的所选项目突出显示颜色

我已经使用操作栏样式生成器为应用程序生成自定义操作栏主题,并且经过一些调整后它可以很好地工作。 我的自定义主题基于Holo(黑暗版本)并更改高光颜色。 当我按下它们时,我的操作栏溢出菜单正确显示溢出项目上的自定义state_pressed颜色。 我已经将android:colorPressedHighlight设置为我想要的颜色,并为android:selectableItemBackground安装了一个合适的drawable android:selectableItemBackground 。 问题出在我的一个测试设备上,它有一个硬菜单按钮。 (这是三星Galaxy S III。)当我使用硬菜单按钮显示溢出菜单时,按此菜单中的项目会使其成为默认的蓝色高亮显示。 它要么使用另一个attr而不是android:selectableItemBackground ,要么是从另一个样式中获取它。 我想知道它正在使用的是什么,或者是它采用的样式,以便我可以设置这种颜色。 PS在任何人建议之前,我知道你可以使用android:panelBackground来设置底部菜单的背景。 但我不想改变整体菜单背景,只想改变项目背景。

自定义主题ActionBar android(菜单不起作用)

我想自定义我的应用程序,我已经应用了一个主题,但选项菜单似乎不适用我的主题。 我希望我的文字颜色为白色,背景为黑色,突出显示/选中的菜单项为黄色。 这是我的theme.xml: @style/MyActionBar @style/MyActionBarTabText @color/application_color5 @style/MyActionBarTabs @drawable/icone_barratopo_selector @drawable/icone_barratopo_selector @drawable/icone_barratopo_selector <!– @drawable/selectable_background — @style/MyActionBar @style/MyActionBarTabText @color/application_color5 @style/MyActionBarTabs @drawable/icone_barratopo_selector @drawable/icone_barratopo_selector @drawable/icone_barratopo_selector @drawable/background_barratopo_superior @style/MyActionBarTitleText @drawable/background_barratopo_superior @style/MyActionBarTitleText @color/application_color2 @drawable/tab_text_selector @drawable/actionbar_tab_indicator @drawable/actionbar_tab_indicator 我的menu.xml: <!– –> 和我的selector.xml:

理解主题和样式属性之间的区别

我正在处理Android L颜色定义以定义ListView的行。 我有一个主题: @color/color_blue_dark 在我的行中我定义了另一个: @color/color_sand ?android:attr/activatedBackgroundIndicator 假设colorAccent值将被覆盖。 但如果我在我的行中,那就不行了: 但如果我这样做,它会起作用: 有什么不同? 是应用主题时定义的colorAccent ,以后不会覆盖? 如何解决这个问题具有逆向兼容性?

Android首选项对话框样式

我正在尝试在我的应用程序中联合对话框。 所有活动都扩展了AppCompatActivity ,因此对话框很重要,但我的设置活动中的DialogPreference除外。 我正在使用PreferenceActivity ,但我也使用PreferenceActivity将其更改为AppCompatActivity 。 它没有任何区别。 所以我尝试为我的SettingsTheme添加自定义样式 @style/StyledDialog 但我得到的一切都是这个(我也尝试过alertDialogStyle,alertDialogTheme和dialogTheme),holo对话保持不变 我尝试的另一件事是扩展EditTextPreference并覆盖onPrepareDialogBuilder并强制我的主题: @Override protected void onPrepareDialogBuilder(AlertDialog.Builder builder) { super.onPrepareDialogBuilder(builder); builder.getContext().setTheme(R.style.StyledDialog); } 也没有成功。 有没有办法在一个应用程序中的对话框是AppCompat联合而不是每个都不同? 我认为平台应该解决这个问题,但是,我忘了我在Android上。 编辑:经过一番挖掘后,我发现DialogPreference使用android.app.AlertDialog而不是android.support.v7.app.AlertDialog 。 所以看起来我必须find一种方法来覆盖DialogPreference Builder。 编辑2:好的,所以关于上一次编辑 – 我一直在使用不支持DialogPreference,所以在添加com.android.support:preference-v7:23.1.0我有权访问另一个类集。 但它看起来仍然有些错误和一点点hacky,所以我保留那些旧的对话框并等待支持库更新。 我find的一些有趣的链接是: 首选项支持库:API 7+的首选项片段,无论活动如何 Android支持首选项@ GitHub Android支持首选项v7修复@ GitHub

切换日/夜模式时按钮主题错误

我有一个应用程序,我让用户在白天和黑夜模式之间切换,使用主题Theme.AppCompat.DayNight。 然而,在切换主题时随机地,按钮具有错误的背景颜色,并且溢出按钮也会发生相同的情况(它将在浅色主题上亮起,或在暗主题上暗淡)。 我已经编写了一个最小的测试应用程序,这个问题也可以重现。 这是示例应用程序: styles.xml @color/colorPrimary @color/colorPrimaryDark @color/colorAccent @color/accent_yellow @color/accent_light_blue @color/accent_steel colors.xml #3F51B5 #303F9F #FF4081 #ff5677fc #ffffc107 #ff607d8b arrays.xml @color/accent_light_blue @color/accent_yellow @color/accent_steel @style/AppTheme.LightBlue @style/AppTheme.Yellow @style/AppTheme.Steel activity_main.xml中 MainActivity.java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); final boolean night = prefs.getBoolean(“mode”, false); AppCompatDelegate.setDefaultNightMode(night ? AppCompatDelegate.MODE_NIGHT_YES : AppCompatDelegate.MODE_NIGHT_NO); […]