我想用Xamarin.Android应用程序中的ProgressBar替换ProgressDialog(已弃用)。
我有一个启动屏幕,它是一个简单的AppCompat活动:
[Activity(Theme = "@style/MainTheme.Splash", MainLauncher = true, NoHistory = true, Icon = "@drawable/favicon", ScreenOrientation = ScreenOrientation.Portrait)]
public partial class SplashActivity : AppCompatActivity
{
ProgressDialog m_loginProgress;
}
具有以下主题:
<style name="MainTheme.Splash" parent ="Theme.AppCompat.Light">
<item name="android:windowBackground">@drawable/splash_screen</item>
<item name="android:windowNoTitle">true</item>
</style>
活动中的OnCreate:
protected override async void OnCreate(Android.OS.Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
m_loginProgress = ProgressDialog.Show(this, Resources.GetString(Resource.String.connecting), Resources.GetString(Resource.String.please_wait), true);
await SomeCallAsync().ContinueWith(() => m_loginProgress.Dismiss());
}
ProgressDialog就像“它正好起作用”。我的意思是:
现在我正尝试使用ProgressBar。
代码有点棘手:
这是我到目前为止的代码,当然它不起作用。
ContentFrameLayout layout = FindViewById<ContentFrameLayout>(Android.Resource.Id.Content);
var p1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent);
p1.AddRule(LayoutRules.CenterInParent);
m_loginProgress = new ProgressBar(this, null, Android.Resource.Attribute.ProgressBarStyleLarge);
m_loginProgress.Id = View.GenerateViewId();
m_loginProgress.LayoutParameters = p1;
layout.AddView(m_loginProgress);
var p2 = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent);
TextView tv = new TextView(this);
tv.LayoutParameters = p2;
tv.Text = Resources.GetString(Resource.String.please_wait);
// Disable user interactions
Window.SetFlags(WindowManagerFlags.NotTouchable, WindowManagerFlags.NotTouchable);
// Show the progress bar
m_loginProgress.Visibility = ViewStates.Visible;
我想知道是否卡住了,应该为我的启动屏幕创建一个内容视图。 如果ProgressDialog有效,ProgressBar也应该有效吗?
编辑:天哪,我发现ProgressBar不是对话框!这只是旋转的圆圈。我到处都认为ProgressDialog可以被ProgressBar代替,但是显然这要复杂得多。
解决方案是使用TextView和ProgressBar作为子级来创建水平LinearLayout。然后将此线性布局添加为FrameLayout的子项
答案 0 :(得分:0)
请尝试下面的链接来设置进度条,并使用color.xml中的colorAccent更改进度条的颜色:-