我试图将一项活动作为主题AlertDialog.我面临的问题是我无法找到一种方法将两个按钮放在我的窗口底部,看起来像是正面和负面的按钮.AlertDialog
我已经将该行添加到清单中的Activity(我正在使用Sherlock Library):
android:theme="@style/Theme.Sherlock.Dialog"
Run Code Online (Sandbox Code Playgroud)
活动看起来就像一个Dialog,但我找不到按钮设置的主题.我能做什么?
可能重复:
如何在Android中运行时更改当前主题
我有一个Android应用程序,我允许用户在运行时切换主题.切换主题很简单,但在重新创建活动之前不会应用主题.我找到了一种方法将主题应用于当前活动,但如果用户按下后退按钮,之前的屏幕仍然具有旧主题.如何更改这些活动的主题?支持它的应用程序示例:任务免费
您好我想为我的主要活动应用自定义Backgroundlayout.我找不到解决方案.有人可以给我一些提示吗?
想在Actionbar中只有一个带背景的简单TextView.这可能吗?
我设法删除图标并设置backgroundimage.但是,如何将文本的重力设置为居中并更改typefont?
getSupportActionBar().setDisplayShowHomeEnabled(false);
getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(myimage));
Run Code Online (Sandbox Code Playgroud)
它应该如下所示:

谢谢!
我有一个有两个活动的应用程序.第一个显示一个按钮,打开第二个按钮.
这是第一个最明智的定义:
<activity
android:name="com.example.buttonexample.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
第二项活动:
<activity
android:name="com.example.buttonexample.MainActivity2"
android:label="@string/title_activity_main_activity2" android:theme="@android:style/Theme.Translucent">
</activity>
Run Code Online (Sandbox Code Playgroud)
以下是我如何启动第二个活动(通过OnClickListener获取第一个活动上的按钮):
public void startSecondActivityClick(View v) {
Intent startActivity2 = new Intent(this, MainActivity2.class);
startActivity(startActivity2);
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但是当我通过击中主页和应用程序的前景来后台应用程序.我注意到第一个活动是不断创造/摧毁自己.我通过在onDestory方法中添加一些代码来增加静态int来验证这一点:
private static int count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
count++;
}
protected void onDestroy() {
super.onDestroy();
Log.i("MainActivity", String.format("Destroyed, %d", count));
}
Run Code Online (Sandbox Code Playgroud)
我也注意到删除半透明主题似乎解决了这个问题.我的问题是有没有办法半透明或类似的东西,但也没有重新启动?而且,我很好奇为什么会发生这种情况.我正在使用Galaxy SIII上的4.0.1 ICS进行测试.
由于DrawerLayout是Android活动的chrome的一部分,抽屉的可能背景颜色似乎是操作栏的背景颜色,因此它们匹配.因此,我想设置ListView抽屉内容与操作栏具有相同的背景颜色,我想在定义的布局XML中这样做ListView.
在这里,我迷失在Android风格系统的迷人小通道的迷宫中......
我知道?android:attr/语法允许您通过引用引用活动使用的主题中定义的值(例如,?android:attr/activatedBackgroundIndicator作为列表项行的背景以使用"激活"状态).
我知道这android:actionBarStyle是主题指向用于设置操作栏本身样式的样式的位置,并且在嵌套(?)样式上,android:background是用于操作栏的背景.
我不知道的是如何制作一个?android:attr/应用于a ListView,从动作栏定义的样式中拉出背景.
这可能吗?如果是这样,语法是什么?
我猜这是不可能的,这就是官方DrawerLayout样本硬编码背景颜色的原因......
谢谢!
目前正致力于在支持库中迁移到ActionBar.目前正在尝试迁移我的旧主题继承,Theme.AppCompat.Light.DarkActionBar但它并不是很顺利.
如果我在清单中应用主题就可以了:
<activity
android:name="com.fitsby.LoginActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.DarkActionBar" >
</activity>
Run Code Online (Sandbox Code Playgroud)
但是我得到一个运行时错误,声明LoginActivity(ActionBarActivity的子类)必须有一个继承自Theme.AppCompat的主题,当我执行以下操作时:在styles.xml中:
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:typeface">sans</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并在清单中:
<activity
android:name="com.fitsby.LoginActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme" >
</activity>
Run Code Online (Sandbox Code Playgroud)
任何想法为什么会发生这种情况?我没有看到任何问题,因为AppTheme显然继承了AppCompat主题之一.
我的活动风格必须来自AppCompat主题.
所以我在清单中制作自定义样式并设置活动样式.
但是显示了黑色背景.
以下是自定义主题
<style name="TransparentTheme" parent="@style/Theme.AppCompat">
<item name="android:background">@null</item>
<item name="background">@null</item>
<item name="android:windowBackground">@null</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud) 我正在使用Material主题,我想更改下图中两个标记区域的颜色 - 即高亮颜色(#1)和细节片段中标题的颜色(#2).
我知道主题中每个地方的颜色都有一个属性,但我似乎无法找到它.

有任何想法吗?
我的应用程序中有菜单项,我想更改项目背景的颜色,点击它时(请参见屏幕截图 - 单击项目1)
我只想要一种颜色 - 浅蓝色或深色.但是,正如您所看到的,第一个项目中有两个.
这是我的代码:
活动中的工具栏:
<android.support.v7.widget.Toolbar
xmlns:sothree="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_toolbar"
sothree:theme="@style/MyActionBar"
android:layout_alignParentTop="true"
style="@style/toolbarButton">
...
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)
样式:
<style name="toolbarButton">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:clickable">true</item>
</style>
<style name="MyActionBar"
parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/material_dark_blue</item>
<item name="android:displayOptions">showHome|homeAsUp|showTitle</item>
<item name="android:icon">@android:color/transparent</item>
<item name="android:centerX">@android:integer/config_shortAnimTime</item>
<item name="windowActionBar">false</item>
</style>
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:textColor">@color/material_white</item>
<item name="android:popupMenuStyle">@style/CustomOverflowBack</item>
<item name="android:itemTextAppearance">@android:color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)
表现:
<application
android:name=".MyApplication"
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/AppTheme">
Run Code Online (Sandbox Code Playgroud)
任何帮助都非常感谢.
更新:添加CustomOverflowBack:
<style name="CustomOverflowBack" parent="@android:style/Widget.Holo.Light.ListPopupWindow">
<item name="android:popupBackground">@drawable/menu_item</item>
</style>
Run Code Online (Sandbox Code Playgroud)
Menu_item.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listview_background_shape">
<stroke android:width="1dp" android:color="@color/material_dark_blue" /> …Run Code Online (Sandbox Code Playgroud) 我正在创建一个库,需要通过主题将父样式传递到库中.要实现这一点,x是库中定义的样式.但它需要从父母那里扩展一些东西.
可以这样做吗?
我的图书馆风格: -
<style="x" parent="?customAttrReferingToSomeOtherStyle"></style>
Run Code Online (Sandbox Code Playgroud)
使用我的图书馆的任何人都需要这样做: -
<item name="customAttrReferingToSomeOtherStyle">@style/ApprelatedStyle</item>
Run Code Online (Sandbox Code Playgroud)
我对编写父样式的硬编码不感兴趣.我希望它是基于自定义属性的纯粹引用.任何形式的硬编码风格都会在模块设置中击败关注点.