【发布时间】:2017-08-04 08:09:11
【问题描述】:
我有一个条件检查来决定ProgressBar 是否应该出现。布局如下所示,ProgressBar 包含在 RelativeLayout 中:
<RelativeLayout
android:id="@+id/someID"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<ProgressBar
android:id="@+id/someProgressBar"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
/>
</RelativeLayout>
在片段中:
ProgressBar progressBar;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.some_main_layout, container, false);
progressBar =(ProgressBar) root.findViewById(R.id.someProgressBar);
....
}
我以编程方式尝试使用setVisibility() 函数更改进度条的可见性,例如:
if(someCondition)
progressBar.setVisibility(View.GONE);
else
progressBar.setVisibility(View.VISIBLE);
但上述方法永远不会奏效。因此,我尝试通过添加 android:visibility="gone" 将初始可见性设置为 GONE 状态在 xml 级别进行更改,但我再次迷失了如何使 ProgressBar 可见。
感谢您对此的看法。
谢谢。
【问题讨论】:
-
这意味着您必须检查您的状况。满足吗?
-
@Piyush :我刚刚给出了代码的基本结构。我确定条件有效(通过调试)。
-
@vardhinisuresh27 只需检查您是否设置了正确进度条的可见性,您将进度条初始化为
someProgressBar并将可见性设置为progressBar。还可以尝试将您的进度条更改为全局变量并查看。 -
@Redman 谢谢。我已经编辑了帖子。我只有一个进度条,它在我的代码中被声明为全局变量。
-
@vardhinisuresh27 你的问题解决了吗??
标签: android visibility android-progressbar