Android Studio 0.4.5
用于创建自定义对话框的Android文档:http://developer.android.com/guide/topics/ui/dialogs.html
如果需要自定义对话框,则可以将"活动"显示为对话框,而不是使用"对话框API".只需创建一个活动并将其主题设置为<activity>清单元素中的Theme.Holo.Dialog :
<activity android:theme="@android:style/Theme.Holo.Dialog" >
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试这个时,我得到以下异常:
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity
Run Code Online (Sandbox Code Playgroud)
我支持以下内容,我不能使用大于10的内容:
minSdkVersion 10
targetSdkVersion 19
Run Code Online (Sandbox Code Playgroud)
在我的风格中,我有以下内容:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
Run Code Online (Sandbox Code Playgroud)
在我的清单中,我有这个活动:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:theme="@android:style/Theme.Holo.Light.Dialog"
android:name="com.ssd.register.Dialog_update"
android:label="@string/title_activity_dialog_update" >
</activity>
Run Code Online (Sandbox Code Playgroud)
像我这样创建对话框是我要做的事情,因为我已经完成了布局.
谁能告诉我如何解决这个问题?
我使用ActionBarActivity从Android 5 SDK,这里是我的theme.xml为V21
<style name="AppTheme_Light" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:colorPrimary">@color/abc1</item>
<item name="android:colorPrimaryDark">@color/abc2</item>
<item name="android:colorAccent">@color/abc3</item>
</style>
Run Code Online (Sandbox Code Playgroud)
但颜色被忽略,并被默认的蓝绿色替换,所有对话框都显示没有填充.
问题http://i62.tinypic.com/21cebcz.png
此外,填充在其他地方也被忽略,如自定义吐司,问题只发生在棒棒糖设备中.
编辑:
填充问题是由于fitsSystemWindow我解决了
这个问题..
但是重音颜色问题仍然存在,它不仅影响对话框而且影响整个应用程序.
android android-appcompat android-support-library material-design android-5.0-lollipop
我有一个片段,我需要在其中显示自定义对话框.
请查看下面的代码.
public class MyFragment extends Fragment{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.send_layout, container, false);
TextView txtView = (TextView) rootView.findViewById(R.id.tv);
txtView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openDialog();
}
});
return rootView;
}
public void openDialog(){
AppCompatDialog dialog = new AppCompatDialog(getContext(), R.style.package_types__dialog);
dialog.setContentView(R.layout.package_types_dialog);
dialog.show();
}
}
Run Code Online (Sandbox Code Playgroud)
删除行时:
dialog.setContentView(R.layout.package_types_dialog);
Run Code Online (Sandbox Code Playgroud)
没有错误,但如果我使用相同的错误就抛出:
FATAL EXCEPTION: main
10-20 19:42:57.489 23866-23866/in.edelworks.pickedup E/AndroidRuntime: Process: in.edelworks.pickedup, PID: 23866
10-20 19:42:57.489 …Run Code Online (Sandbox Code Playgroud) 我正在尝试更改对话框中的文本颜色,最常见的是AlertDialog.我在这些页面上尝试了所有解决方案:
AlertDialog样式 - 如何更改标题,消息等的样式(颜色)
如何更改AlertDialog标题的颜色以及其下方的线条颜色
大多数解决方案的工作低于5.0但高于它,它们似乎没有任何影响.我应该为5.0+更改哪些不同的属性?
我的应用程序的父主题是"Theme.AppCompat.Light.NoActionBar"
我在我的项目中使用UserDialogs库MVVMCross。以下代码已经过测试并且运行良好,我可以看到加载对话框。我遇到的问题是,如何更改循环加载进度的颜色以匹配我的主题?
private async Testing ()
{
using (Mvx.Resolve<IUserDialogs>().Loading("Loading..."))
{
await PutTaskDelay();
}
}
async Task PutTaskDelay()
{
await Task.Delay(2000);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的所有对话框片段设置为在我的应用中看起来相同.来自我的设置片段的对话框完全按照我想要的方式设置样式.对于我的自定义对话框片段,样式类似但不完全相同.出于某种原因,我的自定义对话框片段中的微调器,timepicker,datepicker,radiobuttons和edittext小部件不会选择相同的样式.事实上,小部件融入了白色背景,你无法看到它们在那里.我究竟做错了什么?
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"/>
<style name="Theme.Base" parent="AppTheme">
<item name="colorPrimary">@color/PrimaryBackgroundColor</item>
<item name="colorPrimaryDark">@color/SecondaryBackgroundColor</item>
<item name="colorAccent">@color/ColorBackgroundAccent</item>
<item name="android:textColorPrimary">@color/PrimaryTextColor</item>
<item name="android:alertDialogTheme">@style/AppTheme.DialogStyle</item>
</style>
<style name="AppTheme.DialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="android:textColorPrimary">@color/PrimaryBackgroundColor</item>
<item name="colorAccent">@color/ColorBackgroundAccent</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我正在将主题应用于我的自定义对话框片段,如下所示:
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_DialogStyle);
Run Code Online (Sandbox Code Playgroud)
我的设置对话框看起来像这样(我正是我想要的):
我的自定义对话框片段如下所示:
如您所见,单选按钮选择了红色,您无法看到未选中的单选按钮.