我有一个包含三个标签的片段。在其中一个选项卡上,我有一个对话框,当后台同步进行时会旋转。但是,当后台同步进行时,我需要能够继续处理其他部分。
我目前正在使用dialog.setCancelable(false)
退出对话框,以便我可以使用该应用的其余部分。但是这给了我一个关于同步进行的片段的情感屏幕。
有没有办法让对话框只覆盖屏幕的一部分(只有同步进行的片段)?换句话说,一个不占用整个屏幕的对话框,以便我可以移动到其他选项卡而不取消对话框?
在java代码中实现对话框:
dialog = new Dialog(getActivity());
dialog.requestWindowFeature(Window.FEATURE_PROGRESS);
dialog.setCancelable(true);
dialog.setContentView(R.layout.dialog_progress_bar);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
dialog.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="match_parent"
android:orientation="vertical">
<ProgressBar
android:id="@+id/dialogProgressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
</LinearLayout>
答案 0 :(得分:1)
不,您无法使用Dialog
实现此行为。
#。当您使用Fragment
并希望显示同步的progress
时,我认为您可以在片段ProgressBar
中添加layout
Dialog
1}} XML而不是使用ProgressBar
并按sync
状态显示/隐藏going on
。
状态:
ProgressBar
时,仅显示Views
并隐藏其他completed
。ProgressBar
时,隐藏Views
并根据您的需要向其他人显示layout
。 #。您还可以在片段show
XML中使用SwipeRefreshLayout来表明进度正在进行中。 ProgressBar
进行sync
hide
sync
{{1}}自{{1}}完成{/ 1}}。
这是一个很好的教程:Android Swipe Down to Refresh ListView Tutorial
希望这会有所帮助〜