我想为看起来像对话框的活动创建自定义样式.但我想将此对话框放在屏幕的右上角,并将背景设置为透明.
我已将活动主题设置为@android:style/Theme.Dialog但现在我想覆盖现有主题但我没有在我的sdk文件夹中找到此主题.
有人能告诉我如何更改默认对话框主题?
现在我正在使用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)
然后我得到了以下输出
浅色主题缺少蓝色下划线.我怎么能让蓝色下划线?...请帮助我的朋友.
我试图使用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) 我在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应用程序.该应用程序主要是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) 关于使用ActionBarSherlock或其他库更改硬键菜单的文本颜色或背景图像有很多问题.但我找不到任何与使用AppCompat的Material主题相关的答案.
那么如何更改硬键菜单面板的文本颜色和背景?
默认情况下,面板看起来像这样(Light.DarkActionBar主题).我真的不喜欢丑陋的灰色到灰色的对比,我想把文字颜色改成黑色.

android android-appcompat android-menu android-theme material-design
我最近安装了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管理器.有没有明显没有安装的东西?
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) 每当我显示时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库在主题中使用该属性?
在更改应用程序的夜间模式后,我已经看到了很多有关重新创建当前活动的问题和答案,但是在如何刷新后退堆栈活动方面我什么都没看到。
说我有返回堆栈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之后直接重新创建。
我很难相信,我是第一个尝试在更改夜间模式后从后台刷新“活动”的人。我错过了什么?
谢谢!