C#-Android ProgressBar消失

C#-Android ProgressBar消失,第1张

概述我有一个不确定的androidProgressBar,所以它只是一个旋转的圆形动画.它开始显示正常,但是在我将其父级(overlayLayout)的可见性设置为“走”或“不可见”,然后稍后将其设置回可见时,看不到进度条吗?<?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="http

我有一个不确定的android Progressbar,所以它只是一个旋转的圆形动画.

它开始显示正常,但是在我将其父级(overlayLayout)的可见性设置为“走”或“不可见”,然后稍后将其设置回可见时,看不到进度条吗?

<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:ID="@+ID/overlayLayout"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    androID:background="#ffffff"    androID:gravity="center" >    <TextVIEw        androID:text=""        androID:textAppearance="?androID:attr/textAppearanceLarge"        androID:layout_wIDth="match_parent"        androID:textAlignment="center"        androID:layout_margin="10dp"        androID:layout_height="wrap_content"        androID:ID="@+ID/overlayLabelText" />  <Progressbar      androID:ID="@+ID/overlayProgressbar"      androID:layout_below="@ID/overlayLabelText"      androID:layout_wIDth="match_parent"      androID:layout_height="wrap_content"      androID:foregroundGravity="center"      androID:indeterminate="true" /></relativeLayout>

编辑:
我不确定是否包含该视图,但不确定进度条是否未呈现,或者不确定Progressbar视图本身是否被完全排除,因为我无法访问UI视图层次结构.

到目前为止,我已经尝试过:

    Progressbar.Enabled = true;    Progressbar.ForceLayout();    Progressbar.InvalIDate();    Progressbar.SetProgress(0, true);    Progressbar.Visibility = VIEwStates.Visible;

但是还没有突破.

编辑2:
谢谢大家到目前为止的帮助.我已经切换到以编程方式创建布局-这是我的完整代码:

overlay = new relativeLayout(mainActivity){    LayoutParameters = new VIEwGroup.LayoutParams(VIEwGroup.LayoutParams.MatchParent, VIEwGroup.LayoutParams.MatchParent)};overlay.SetBackgroundcolor(color.WhiteSmoke);overlay.SetGravity(GravityFlags.Center);description = new TextVIEw(mainActivity){    LayoutParameters = new VIEwGroup.LayoutParams(VIEwGroup.LayoutParams.MatchParent, VIEwGroup.LayoutParams.WrapContent),    Gravity = GravityFlags.Center,    TextSize = 18,    ID = 1523112};description.Text = "Waiting for GPS";description.SetBackgroundcolor(color.Aqua);progressbar = new Progressbar(mainActivity){    Indeterminate = true,};relativeLayout.LayoutParams lp = new relativeLayout.LayoutParams(VIEwGroup.LayoutParams.MatchParent, VIEwGroup.LayoutParams.WrapContent);lp.AddRule(LayoutRules.Below, description.ID);progressbar.LayoutParameters = lp;progressbar.SetBackgroundcolor(color.Red);container.AddVIEw(overlay);overlay.AddVIEw(description);overlay.AddVIEw(progressbar);

使用两种隐藏和显示方法:

private voID OnGpsUpdate(){    overlay.Visibility = VIEwStates.Gone;}private voID NoGPS(){    description.Text = "Waiting for GPS";    overlay.Visibility = VIEwStates.Visible;}

首次渲染布局时,在首次隐藏之前:
(我在不好的时候截图了,但是蓝色的绘图显示了圆圈在其加载动画周围移动的位置)

隐藏并再次显示后,进度条加载视图已存在,但不再有加载环:

我开始认为这可能是我的AndroID模拟器有问题吗?不,在我的实体电话上测试时,同样的问题.文本视图仍然显示正常,只是进度条不显示?


我没有完全理解它,因为除了progressbar之外,其他所有功能似乎都可以正常工作,但是一种解决方案来自将可见性调用包装在RunOnUIThread()调用中.

解决方法:

几点

根据问题的描述方式,您需要显示用于隐藏/显示overlayLayout的代码段

推荐建议

如果您只关心进度条在隐藏/显示方面的行为,则无需使用此代码段:

Progressbar.Enabled = true;Progressbar.ForceLayout();Progressbar.InvalIDate();Progressbar.SetProgress(0, true);Progressbar.Visibility = VIEwStates.Visible;

您只需要控制ID为overlayLayout的根布局即可

private relativeLayout overlayLayout;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_example);    // Instantiate the layout    overlayLayout = findVIEwByID(R.ID.overlayLayout);    // Do the logic how you inflate/show the layout    ...     // HIDe the overlay layout    overlayLayout.setVisibility(VIEw.GONE);    // Show the overlay layout    overlayLayout.setVisibility(VIEw.VISIBLE);}

确定可见性值,对于这种情况,我建议使用VIEw.GONE而不是VIEw.INVISIBLE

阅读更多内容:

> https://developer.android.com/reference/android/view/View.html#GONE
> https://developer.android.com/reference/android/view/View.html#INVISIBLE
> http://tips.androidgig.com/invisible-vs-gone-view-in-android/

总结

以上是内存溢出为你收集整理的C#-Android ProgressBar消失全部内容,希望文章能够帮你解决C#-Android ProgressBar消失所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1092340.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存