你的問題:如何禁用用戶交互,而進度採用的是Android可見?
要禁用,你只需要添加以下代碼
getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
得到用戶的互動活動,你只需要添加以下代碼
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
這裏的用戶交互是一個例子: 注:我只是給你一個例子▼如何禁用或保留用戶交互
在xml.Something這樣
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/progressBar"
android:visibility="gone"/>
添加一個進度條,在MainActivity當按下按鈕你顯示進度和禁用用戶交互。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImageView = (ImageView) findViewById(R.id.imageView);
mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
mImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mProgressBar.setVisibility(View.VISIBLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
}
});
}
當用戶backPressed刪除。如果您要添加的禁用功能,並灰色顯示進度又保留用戶interaction.Something這樣
@Override
public void onBackPressed() {
super.onBackPressed();
mProgressBar.setVisibility(View.GONE);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
}
,你需要添加你的xml佈局文件是一個填充父項的線性佈局。將其背景設置爲#B0000000,並將其可見性設置爲「已完成」。比編程式將其可見性設置爲可見。
希望得到這個幫助!
可能的複製(HTTP://計算器。 com/questions/2819778/custom-drawable-for-progressbar-progressdialog) –
@txteclipse我不想自定義進度條,我已經這樣做了。 所以,我的問題是不重複的。 我只想禁用用戶交互,而進度條是可見的,同樣的方式,當ProgressDialog可見時,用戶不能與其他UI控件交互而不關閉進度對話框。 現在我的問題是如何重複的問題。我的問題甚至與定製關係不大。 –
如果你想要一個對話框的所有功能,你應該使用一個對話框。例如,模態不是微不足道的:接受的答案不會阻止鍵盤交互。鏈接問題中的第二個答案演示瞭如何在ProgressDialog中使用自定義ProgressBar資源。如果這不能滿足您的需求,您可以使用ProgressBar使用[自定義佈局](http://developer.android.com/guide/topics/ui/dialogs.html#CustomLayout)。 –