我使用此命令更改了AlertDialog标题的颜色
alert.setTitle( Html.fromHtml("<font color='#FF7F27'>Set IP Address</font>"));
Run Code Online (Sandbox Code Playgroud)
但我想改变标题下出现的线条的颜色; 我怎样才能做到这一点 ?
注意:我不想使用自定义布局
最近我从支持库切换到com.google.android.material:material:1.0.0
但是现在我有一个问题,在这个页面上有一个注释https://github.com/material-components/material-components-android/blob/master/docs/getting-started.md
注意:使用"材质成分"主题可启用自定义视图填充程序,该填充程序将使用"材质"对应项替换默认组件.目前,这仅使用MaterialButton替换Button XML组件.
我正在使用的主题
Theme.MaterialComponents.Light.NoActionBar
Run Code Online (Sandbox Code Playgroud)
它完全按照它在说明中所说的,它将AlertDialog按钮替换为MaterialButtons,但问题是默认情况下MaterialButtons是彩色背景,现在按钮看起来像这样:
我怎样才能让它们再次无边界和无背景?
PS我正在使用警报构建器来创建警报对话框:
android.app.AlertDialog.Builder
Run Code Online (Sandbox Code Playgroud) android android-alertdialog android-styles material-design material-components-android
我知道有一种方法可以在按钮点击时更改应用程序默认主题.Blackmart开发人员已经做到了.我已经在Google上搜索了1000页,但我发现这个(不工作)
getApplication().setTheme(Theme.Holo)
Run Code Online (Sandbox Code Playgroud)
由于我已经在res/values/styles.xml中创建了一个新样式,还有其他方法可以动态更改它吗?甚至重启应用程序?
如何AlertDialog
在Android中更改按钮的颜色?
如果我已经定义了一个Activity:
public class DialogActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(dialog_activity.xml);
}
}
Run Code Online (Sandbox Code Playgroud)
我想像对话框一样显示上面的活动,所以在AndroidManifest.xml文件中,我声明这个活动如下:
<activity android:name=".DialogActivity" android:theme="@android:style/Theme.Dialog"/>
Run Code Online (Sandbox Code Playgroud)
此时一切都很好,我DialogActivity
表现为对话.
问题是如何自定义宽度和高度DialogActivity
使其更像一个小对话框?(目前它默认占据大部分屏幕)
----------------------------更新--------------------- -
我定义了一个自定义主题如下:
<style name="myDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:width">100dip</item>
<item name="android:height">100dip</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后,DialogActivity
在AndroidManifest.xml中声明为.
<activity android:name=".DialogActivity" android:theme="@style/myDialog"/>
Run Code Online (Sandbox Code Playgroud)
我DialogActivity
现在甚至占据整个屏幕:(.宽度和高度定义:
<item name="android:width">100dip</item>
Run Code Online (Sandbox Code Playgroud)
在主题上没有任何效果,为什么?
android android-widget android-manifest android-emulator android-layout
我有一个Android应用程序,它使用一些从XML布局膨胀的自定义对话框.对话框视图的内容来自XML布局,但实际的正面和负面按钮是通过调用构建器的setPositiveButton和setNegativeButton方法添加的,因此我无法控制(或至少不知道如何控制)样式按钮本身.
请参阅我的LoginConfirmationDialog.java文件中的onCreateDialog方法,该文件扩展了DialogFragment.它基本上弹出一个非常简单的对话框,要求确认谁登录(即"你是Joe Schmoe吗?",带有Yes和No按钮).
在这种情况下,XML布局只有一个TextView,为了简化这一点(因为用户将是需要大文本和大按钮的大手指脏手指的建筑工人),我使TextView的字体非常大.这两个按钮的文字字体要小得多,因为它们不是我的布局的一部分,并且添加了setPositiveButton和setNegativeButton方法,我该如何控制字体大小?
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Bundle args = this.getArguments();
String empName = args.getString("empName");
// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_login_confirmation, null);
TextView message = (TextView)view.findViewById(R.id.txtLoginConfirmationMessage);
message.setText("Are you " + empName + "?");
builder.setView(view);
builder.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
mListener.onEmpConfirmPositiveClick(LoginConfirmationDialog.this);
}
});
builder.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
mListener.onEmpConfirmNegativeClick(LoginConfirmationDialog.this);
}
});
// Create the …
Run Code Online (Sandbox Code Playgroud) 我正在创建一个AlertDialog.我正在使用setView()来设置自定义视图.这将在对话框中启用"暗"主题(灰色背景,并需要白色文本).
有没有办法设置对话框使用'轻'主题?它看起来更好(白色背景,深色文字).
谢谢
我必须AlertDialog
在它进入时滑入并在它被解散时滑出,但它没有动画。
那么如何让动画工作呢?
这是我所拥有的
public class SlideDialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(new ContextThemeWrapper(getActivity(),R.style.SlidingDialog))
.setTitle("Sliding dialog")
.create()
}
Run Code Online (Sandbox Code Playgroud)
主题文件
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="SlidingDialog" parent="@android:style/Theme.DeviceDefault.Dialog">
<item name="android:windowAnimationStyle">@style/SlidingDialogAnimation</item>
</style>
<style name="SlidingDialogAnimation">
<item name="android:windowEnterAnimation">@android:anim/slide_in_left</item>
<item name="android:windowExitAnimation">@android:anim/slide_out_right</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
我参考了太多资源,似乎没有一种适合我的正确方法可以做到这一点,可能是我遗漏了一些东西
我在用
以下是一些我无法从中得到答案的相关资源
animation android android-alertdialog android-dialogfragment
我正在使用具有自定义布局的AlertDialog.TextView中的布局的颜色是黑色的,所以用Holo.Light在Android 4.0打开对话框时,该文本是可见的.但是,如果您在Android 2.2中打开对话框,则由于灰色背景,文本不可见.有没有办法改变背景颜色?
我正在尝试更改对话框中的文本颜色,最常见的是AlertDialog.我在这些页面上尝试了所有解决方案:
AlertDialog样式 - 如何更改标题,消息等的样式(颜色)
如何更改AlertDialog标题的颜色以及其下方的线条颜色
大多数解决方案的工作低于5.0但高于它,它们似乎没有任何影响.我应该为5.0+更改哪些不同的属性?
我的应用程序的父主题是"Theme.AppCompat.Light.NoActionBar"