在我的Xamarin.Android应用程序中加载下一个Activity时,我正在使用 ProgressDialog 。
ProgressDialog progressDialog = new ProgressDialog(this);
我可以通过编程方式设置Circle-Color:
Drawable circle = new ProgressBar(this).IndeterminateDrawable.Mutate();
circle.SetColorFilter(Color.Red, PorterDuff.Mode.SrcIn);
progressDialog.SetIndeterminateDrawable(circle);
我可以通过编程方式设置Text-Color:
SpannableString ss = new SpannableString("This is my message");
ss.SetSpan(new ForegroundColorSpan(Color.Red), 0, ss.Length(), 0);
progressDialog.SetMessage(ss);
但我找不到以编程方式设置Background-Color的方法。 也许你可以帮我解决这个问题。我不想使用Style.Theme。
修改:
在这种情况下,创建一个完整的自定义视图(在AlertDialog中使用)似乎是最佳解决方案。感谢您提示Joachim
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/llProgressDialog"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
android:padding="20dp"
android:orientation="horizontal">
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_marginLeft="20dp"
android:text= "Laden ..."
android:layout_gravity="center"
android:id="@+id/tvProgressDialog"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
</LinearLayout>
答案 0 :(得分:0)
执行此操作的简单方法是创建样式,然后在创建时使用样式
new ProgressDialog(Context, Resource.Style.progressDialogeStyle);
然而,如果你因为某种原因不想这样做,我不认为有一个简单的方法。你可以设置progressdialogue的视图,但是你必须手动创建整个视图。
也许您可以使用.FindViewById获取背景视图并更改其背景颜色。虽然使用风格以外的其他东西感觉很糟糕,我可以问你为什么不想这样做?