單擊提交按鈕時,我嘗試顯示一個ProgessBar。數據完成加載後會隱藏。但是,progressBar並未覆蓋整個屏幕。相反,它是由按鈕覆蓋。請參考截圖,它應該更容易理解我的意思。Android如何讓ProgressBar(圓圈)按下按鈕時覆蓋全屏幕?
我想達到什麼是屏幕截圖的底部。
Main4Activity.java
public class Main4Activity extends AppCompatActivity {
ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main4);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
progressBar.setVisibility(View.GONE);
final EditText username=(EditText)findViewById(R.id.username);
final EditText email=(EditText)findViewById(R.id.email);
final EditText password=(EditText)findViewById(R.id.password);
final Button submit=(Button)findViewById(R.id.submit);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
progressBar.setVisibility(View.VISIBLE);
final String get_username=username.getText().toString();
final String get_email=email.getText().toString();
final String get_password=password.getText().toString();
Response.Listener<String> response_listener=new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try{
JSONObject jsonObject=new JSONObject(response);
boolean result=jsonObject.getBoolean("register_result");
progressBar.setVisibility(View.GONE);
if(result){
AlertDialog.Builder builder=new AlertDialog.Builder(Main4Activity.this);
builder.setMessage("Registration Done!")
.setNegativeButton("Back",null)
.create()
.show();
}else{
AlertDialog.Builder builder=new AlertDialog.Builder(Main4Activity.this);
builder.setMessage("User already existed! Please try different Email")
.setNegativeButton("Back",null)
.create()
.show();
}
}catch(JSONException e){
e.printStackTrace();;
}
}
};
register_request register_request=new register_request(get_username,get_email,get_password,response_listener);
RequestQueue queue=Volley.newRequestQueue(Main4Activity.this);
queue.add(register_request);
}
});
TextView register=(TextView)findViewById(R.id.login);
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(Main4Activity.this,login_activity.class);
Main4Activity.this.startActivity(intent);
}
});
}
}
XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.collection_tutorial.Main4Activity"
android:orientation="vertical">
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/progressBar"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:indeterminate="false"
android:layout_gravity="center" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/password"
android:layout_below="@+id/email"
android:layout_centerHorizontal="true"
android:hint="Password"
android:layout_margin="10dp" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/username"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:hint="UserName/Restaurant Name"
android:layout_margin="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Existing User? Please Login here->"
android:id="@+id/login"
android:layout_below="@+id/submit"
android:layout_centerHorizontal="true"
android:layout_margin="10dp" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Submit Registration"
android:id="@+id/submit"
android:layout_below="@+id/password"
android:layout_centerHorizontal="true"
android:layout_margin="10dp" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/email"
android:layout_below="@+id/username"
android:layout_centerHorizontal="true"
android:hint="Email "
android:layout_margin="10dp" />
</RelativeLayout>
我嘗試把進度和3 EDITTEXT和按鈕進入相同的Relativelayout,它也不起作用。任何人都可以幫忙
怎麼樣[進度對話框](https://developer.android.com/reference/android/app/ProgressDialog.html)它不完全是你想要的,但它會出現在你的登錄屏幕上。爲了得到你想要的,你必須加載一個新的佈局,只需一個進度條就可以了。 –
@GaryBak我已經考慮過了,但是效果並不好,因爲我想將這個效果應用到整個項目中。如果每次點擊按鈕,它都會顯示進行中的對話框,它看起來很奇怪。 – gosulove
當您更改進度欄的可見性時,將屏幕上的其他組件設置爲View.GONE。 –