标签: android-theme

Android覆盖默认对话框主题

我想为看起来像对话框的活动创建自定义样式.但我想将此对话框放在屏幕的右上角,并将背景设置为透明.

我已将活动主题设置为@android:style/Theme.Dialog但现在我想覆盖现有主题但我没有在我的sdk文件夹中找到此主题.

有人能告诉我如何更改默认对话框主题?

android android-layout android-theme

2
推荐指数
1
解决办法
1万
查看次数

Actionbar sherlock灯光主题

现在我正在使用actionbar sherlock和fragment.I使用以下主题的Android应用程序.

<style name="Theme.AndroidDevelopers" parent="Theme.Sherlock.ForceOverflow">
    <item name="android:actionDropDownStyle">@style/MyDropDownNav</item>
    <item name="actionDropDownStyle">@style/MyDropDownNav</item>

    </style>
Run Code Online (Sandbox Code Playgroud)

我得到了以下输出.在此输入图像描述

但是我想使用灯光主题所以我将父母改为

parent="Theme.Sherlock.Light.ForceOverflow"
Run Code Online (Sandbox Code Playgroud)

然后我得到了以下输出在此输入图像描述

浅色主题缺少蓝色下划线.我怎么能让蓝色下划线?...请帮助我的朋友.

android android-theme actionbarsherlock

2
推荐指数
1
解决办法
6049
查看次数

setTheme函数不能用于恢复

我试图使用setTheme函数,它基本上根据一些数据库值设置主题,但问题是,一旦我更新了要设置主题的数据库,我需要完成()要实现的主题设置的活动.代码是 -

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        settingsDBAdapter = new SettingsDBAdapter(this);
        settingsDBAdapter.open();

        setSettingsTheme();  <<------THIS LINE WILL SET THEME
        setContentView(R.layout.layout_task_manager);

        quickAddButton = (Button) findViewById(R.id.QuickAddButtonId);
        quickAddTaskText = (EditText) findViewById(R.id.QuickAddEditTextId);

        mDBHelper = new TasksDBAdapter(this); 
        mDBHelper.open();


        fillData();
        //code to create long press on any list item and calls onCreateContextMenu method
        registerForContextMenu(getListView());
        registerButtonListenersAndSetDefaultText();


    }

public void setSettingsTheme(){
        String currentTheme = settingsDBAdapter.fetchThemeSettings("theme");
        Log.i(TAG,"settingsDBAdapter + currentTheme-->" + settingsDBAdapter + currentTheme);
        //setTheme(R.style.HoloTheme);
        if(currentTheme.trim().equalsIgnoreCase("holo")){
            Log.i(TAG, "in holo<<<<<<<<");
            setTheme(R.style.HoloTheme);
        }else if(currentTheme.trim().equalsIgnoreCase("hololight")){
            Log.i(TAG, "in hololight<<<<<<<");
            setTheme(R.style.HoloLightTheme);
        }else{
            Log.i(TAG, "iin …
Run Code Online (Sandbox Code Playgroud)

android android-theme

2
推荐指数
1
解决办法
4400
查看次数

RingtonePreference主题

我在Holo.Light主题中创建了一个Android应用程序.除Ringtonepreference外,所有偏好都很轻松!

我甚至尝试在Preferences.xml中设置BGColor和textColor:

<RingtonePreference
        android:icon="@drawable/ic_menu_note"
        android:key="ringtone"
        android:persistent="true"
        android:summary="@string/settings_ringtone2"            
        android:background="#000000"
        android:textColor="#ffffff"
        android:title="@string/settings_ringtone" />
Run Code Online (Sandbox Code Playgroud)

Android忽略了一切......

有没有人知道如何将RingtonePreference的主题改为Holo.Light?

android android-preferences android-theme

2
推荐指数
1
解决办法
1312
查看次数

Android/Eclipse应用主题的麻烦

我是Android新手,似乎挂了一点......

我正在尝试构建我的第一个Android应用程序.该应用程序主要是Eclipse为您创建的模板...

我想使用Holo主题的基础和默认的黑色背景.我可以通过在Manifest中硬编码"@android:style/Theme.Holo"来实现它(在模拟器上).但我不能把它从styles.xml中拉出来.

即使我在Manifest中进行硬编码,Eclipse仍然在Activity编辑器中显示白色背景,这使得在白色背景上设计白色文本变得困难......

我确定这是我想念的小事.请看下面......

先谢谢彼得

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ca.domain.test2"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="18" />

    <uses-permission android:name="android.permission.VIBRATE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/icon48"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="ca.domain.test2.Something"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:label="@string/app_name"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <!--
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
    -->
    <style name="AppBaseTheme" parent="android:Theme.Holo">
        <!--
            Theme customizations available in newer API levels can …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-theme

2
推荐指数
1
解决办法
1530
查看次数

使用AppCompat和Material更改硬键菜单面板的样式

关于使用ActionBarSherlock或其他库更改硬键菜单的文本颜色或背景图像有很多问题.但我找不到任何与使用AppCompat的Material主题相关的答案.

那么如何更改硬键菜单面板的文本颜色和背景?

默认情况下,面板看起来像这样(Light.DarkActionBar主题).我真的不喜欢丑陋的灰色到灰色的对比,我想把文字颜色改成黑色.

默认菜单看

android android-appcompat android-menu android-theme material-design

2
推荐指数
1
解决办法
739
查看次数

找不到与给定名称匹配的资源(在'主题'中,值为'@ android:style/Theme.my_theme').(APT0000)

我最近安装了Xamarin Android全新版本(版本5.10.1 build 6).当我尝试添加主题时,我遇到了可怕的"找不到资源..."错误.
这是我试图添加的第一个主题,所以我不确定问题是否可能是由于我在代码中编写的内容.然而,在StackOverflow和Xamarin论坛上搜索,我发现这个问题可能意味着没有安装某些Android库.

所以我已经安装了来自最新和以前的API以及Extras的更多东西,但我仍然得到同样的错误.
该应用程序只是一个针对手机的简单应用程序,所以我没有安装磨损或电视库.我还需要多久才能使用Android API?
还有什么我应该安装的并不明显吗?

对于这个特定的错误,已经有很多答案,但是其中很多都是模糊的,并没有给出确切的说明,或者提到我不认识的组件,我想是因为我使用的是Xamarin.

这是我的主题代码.

<?xml version="1.0" encoding="UTF-8" ?>
<resources>
  <style name="Theme.my_theme" parent="@android:style/Theme.DeviceDefault.Light.DialogWhenLarge">
    <item name="android:textColor">#00FF00</item> <item name="android:typeface">monospace</item> <item name="android:textSize">20sp</item>
  </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

这是清单.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="My_app.My_app">
    <uses-sdk android:minSdkVersion="17" />
    <application android:label="My_app" android:theme="@android:style/Theme.my_theme" android:icon="@drawable/icon"></application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

以下是显示已安装内容的Android管理器.有没有明显没有安装的东西?

androidmanager1 androidmanager2 androidmanager3 androidmanager4

android android-theme xamarin

2
推荐指数
1
解决办法
3200
查看次数

Android appCompat主题vs基本主题

Android Theme.AppCompat和Base.Theme.AppCompat之间的区别是什么?我们什么时候应该使用Base主题?

<style name="flatButton" parent="Base.Widget.AppCompat.Button.Borderless">
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="flatButton2" parent="Widget.AppCompat.Button.Borderless">
    <item name="colorAccent">@color/colorAccent</item>
</style>
Run Code Online (Sandbox Code Playgroud)

android android-theme android-styles

2
推荐指数
1
解决办法
1071
查看次数

在主题中使用fontFamily属性时,toast会使用appcompat v26抛出ArrayIndexOutOfBoundsException

每当我显示时Toast,应用程序崩溃.

如果我使用旧版本的AppCompat库或fontFamily从样式中删除,该应用程序工作正常.

的onCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toast.makeText(this, "Test", Toast.LENGTH_SHORT).show(); //line 13
}
Run Code Online (Sandbox Code Playgroud)

相关性:

compile 'com.android.support:appcompat-v7:26.1.0'
Run Code Online (Sandbox Code Playgroud)

AppTheme:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:fontFamily">sans-serif-light</item>
</style>
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

引起:java.lang.ArrayIndexOutOfBoundsException:length = 16; 在android.content.res.X.B.Adray.loadStringValueAt的android.content.res.XmlBlock $ Parser.getPooledString(XmlBlock.java:458)的android.content.res.StringBlock.get(StringBlock.java:65)索引= 233 TypedArray.java:1212)在Android.support.v7.widget.TintTypedArray.getString(TintTypedArray.java:143)android.content.res.TypedArray.getString(TypedArray.java:202)的android.support.v7.:347)位于android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:152)的.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:215)位于android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:38)at android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:81),位于android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater)的android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:71). java:103)在android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024))android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)的android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:769)上的android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1081)在android.view.LayoutInflater.rInflate(LayoutInflater.java:858)的android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)在android.view上的android.view.LayoutInflater.inflate(LayoutInflater.java:518). LayoutInflater.inflate(LayoutInflater.java:426)位于android.view.LayoutInflater.inflate(LayoutInflater.java:377)的android.widget.Toast.makeText(Toast.java:266)at io.yarsa.blankapp.MainActivity.onCreate (MainActivity.java:13)在android.app.Anstrumentation.callActivityOnCreate(Instrumentation.java:1119)android.app.ActivityThread.performLaunchActivity(ActivityThread.java)的android.app.Activity.performCreate(Activity.java:6679). 2618)在Android.app.A的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)android.app.Loper.loop上的android.app.A.运行时,Android.O.运行时,运行android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1477)的ctivityThread.-wrap12(ActivityThread.java)(Handler.java:102) Looper.java:154)在android.app.ActivityThread.main(ActivityThread.java:6126)的java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run( ZygoteInit.java:886)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

有没有其他选择,以便我可以使用fontFamily最新版本的AppCompat库在主题中使用该属性?

android toast android-appcompat font-family android-theme

2
推荐指数
1
解决办法
742
查看次数

更改夜间模式后刷新后台堆栈活动

在更改应用程序的夜间模式后,我已经看到了很多有关重新创建当前活动的问题和答案,但是在如何刷新后退堆栈活动方面我什么都没看到。

说我有返回堆栈A> B> C。活动C允许通过调用更改夜间模式AppCompatDelegate.setDefaultNightMode()。调用之后,当前活动(C)可以使用delegate.applyDayNight()或刷新其主题recreate()

但是,当用户导航回B或A时,无论白天还是晚上,活动仍在使用“旧”模式。

我试图在活动中添加类似的内容:

override fun onResume() {
  super.onResume()
  delegate.applyDayNight()
}
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用。

我做了多次尝试来解决这个问题:

一种想法是完全按照此处此处的建议重新创建后堆栈,但是由于后堆栈不是静态的,因此对我而言这是不可行的。

另一个想法是让一个类处理夜间模式更改并提供LiveData。每个Activity都会监听LiveData进行模式更改并调用recreate()。但是,我们陷入了无限循环,因为活动将在开始收听LiveData之后直接重新创建。

我很难相信,我是第一个尝试在更改夜间模式后从后台刷新“活动”的人。我错过了什么?

谢谢!

android android-theme kotlin android-night-mode

2
推荐指数
1
解决办法
843
查看次数