我一直在为我的应用中的片段添加ProgressBar
。我将它设置为两个主要片段(用作制表符),如下所示:
ProgressBar
中的 activity_main.xml
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
</RelativeLayout>
设置ProgressBar
VISIBLE
和GONE
:
spinner = (ProgressBar)getActivity().findViewById(R.id.progressBar1);
spinner.setVisibility(View.VISIBLE);
spinner.setVisibility(View.GONE);
这没有任何问题。我尝试将另一个ProgressBar
添加到另一个具有WebView
:
ProgressBar
中的 fragment_article.xml
:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="info.androidhive.slidingmenu.ArticleFragment$PlaceholderFragment" >
<WebView android:id="@+id/webPage"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
</RelativeLayout>
设置可见性:
spinner = (ProgressBar)getActivity().findViewById(R.id.progressBar1);
spinner.setVisibility(View.VISIBLE);
spinner.setVisibility(View.GONE);
以与上一代码相同的方式设置可见性,但出于某种原因,这并未将ProgressBar
设置为GONE
。不确定是什么问题。
我已经尝试使用clearAnimation
建议Android, setVisbility to gone not working in RelativeLayout,但仍然没有。
spinner.clearAnimation();
spinner.setVisibility(View.GONE);
答案 0 :(得分:6)
检查此代码:
spinner = (ProgressBar)getActivity().findViewById(R.id.progressBar1);
如果你使用片段,它应该是这样的:
spinner = (ProgressBar)viewIinflated.findViewById(R.id.progressBar1);//same case with dialogs
如果您正在使用活动,那么:
spinner = (ProgressBar)findViewById(R.id.progressBar1);
答案 1 :(得分:1)
可能是因为View.GONE
会阻止View
被吸引到屏幕上,而另一个View
android:layout_align[POSITION]
组件可能被定义为{{1}因此无法计算他们的位置。
View
会起作用,因为它只是让它不可见,但View.INVISIBLE
仍然存在,而其他View
可以计算其位置,如果对齐设置为
答案 2 :(得分:-1)
这项工作对我来说:
rootView.findViewById(R.id.progress_bar).setVisibility(View.GONE);
答案 3 :(得分:-1)
progressBar.setVisibility(ProgressBar.VISIBLE);