【发布时间】:2018-09-03 17:40:23
【问题描述】:
我正在使用一个扩展 Dialog 的类。它应该显示一个progressbar 元素。有时会有消息,有时没有。
progressbar在没有消息时显示,但在有消息时不显示,我不明白为什么。
这是布局代码:
<TextView
android:id="@+id/dialog_message"
style="@style/arial"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:layout_marginLeft="100dp"
android:layout_marginRight="100dp"
android:layout_marginBottom="20dp"
android:text=""
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="18sp"
/>
<ProgressBar
android:id="@+id/progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="30dp"
android:layout_marginLeft="100dp"
android:layout_marginRight="100dp"
android:layout_marginTop="10dp"
android:visibility="gone" />
这里是java:
public void progressDialog () {
if(this.message.getText().length() > 0){
message.setVisibility(View.VISIBLE);
}else{
message.setVisibility(View.GONE);
}
progress.setVisibility(View.VISIBLE);
leftButton.setVisibility(View.GONE);
rightButton.setVisibility(View.GONE);
}
当message 设置为GONE 时,进度条显示,当message 设置为VISIBLE 时,进度条不显示。我认为它以某种方式被消息隐藏了。
我尝试在布局中移动它,因为这个问题可能暗示需要ProgressBar not displaying,但无济于事。
如何在调用progressDialog() 时始终显示进度条?
编辑***** 添加完整的布局 xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/dialog_background"
android:orientation="vertical">
<TextView
android:id="@+id/dialog_title"
style="@style/arialBold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="5dp"
android:layout_marginTop="35dp"
android:ellipsize="end"
android:maxLines="1"
android:text="@string/waiting"
android:textColor="@android:color/white"
android:textSize="21sp" />
<TextView
android:id="@+id/dialog_message"
style="@style/arial"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="30dp"
android:text=" "
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="20sp" />
<ProgressBar
android:id="@+id/progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="30dp"
android:layout_marginLeft="100dp"
android:layout_marginRight="100dp"
android:layout_marginTop="30dp"
android:visibility="gone" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="30dp"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/dialog_button_one"
style="@android:style/Widget.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/purple"
android:orientation="horizontal">
<TextView
android:id="@+id/dialog_button_one_text"
style="@style/arialBold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="@dimen/alert_dialog_button_margin_left_right"
android:layout_marginRight="@dimen/alert_dialog_button_margin_left_right"
android:layout_marginTop="10dp"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@android:color/white"
android:textSize="20sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/dialog_button_two"
style="@android:style/Widget.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="20dp"
android:background="@color/purple"
android:orientation="horizontal">
<TextView
android:id="@+id/dialog_button_two_text"
style="@style/arialBold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="@dimen/alert_dialog_button_margin_left_right"
android:layout_marginRight="@dimen/alert_dialog_button_margin_left_right"
android:layout_marginTop="10dp"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@android:color/white"
android:textSize="20sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
【问题讨论】:
-
我只是在调查约束布局@Zeeshan。我怀疑要解决这个问题,我需要根据约束模型重新设计整个布局,现在没有时间 - 这不是优先事项。如果有人(@Arsalan Khan、@Zeeshan)可以解释为什么这些替代布局模式是必要的,那么很乐意接受答案