我已通过条件检查来决定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);
但上述情况永远不会奏效。因此,我尝试在xml
级别进行更改,添加android:visibility="gone"
,将初始可见性设置为GONE
状态,但我再次失去了如何使ProgressBar可见。
感谢您对此的看法。
感谢。
答案 0 :(得分:3)
你可以尝试这个希望,它可以帮助你。
ProgressBar someProgressBar;
TextView txtSend;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtSend = (TextView) findViewById(R.id.txtSend);
someProgressBar = (ProgressBar) findViewById(R.id.someProgressBar);
someProgressBar.setVisibility(View.GONE);
txtSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (someProgressBar.getVisibility() == View.GONE) {
someProgressBar.setVisibility(View.VISIBLE);
} else {
someProgressBar.setVisibility(View.GONE);
}
}
});
答案 1 :(得分:0)
用下面的代码替换你的代码,
if(someCondition)
progressBar.setVisibility(View.INVISIBLE);
else
progressBar.setVisibility(View.VISIBLE);
答案 2 :(得分:0)
问题是您使用了错误的ID进度条。
ProgressBar someProgressBar=(ProgressBar) root.findViewById(R.id.someProgressBar);
if(someCondition)
someProgressBar.setVisibility(View.GONE);
else
someProgressBar.setVisibility(View.VISIBLE);
并更改进度条的xml代码。如果你想通过defaultprogress bar隐藏,那么保持原样,否则从xml中删除可见性。