Android dialogfragment封装loadingDialog
在Android开发中,经常需要在进行一些耗时操作时显示loading动画,以提高用户体验。为了方便统一管理loading动画的显示和隐藏,我们可以封装一个loadingDialog,并以DialogFragment的形式展示。下面我们就来详细介绍如何实现这一功能。
1. 创建LoadingDialogFragment类
首先我们需要创建一个LoadingDialogFragment类,该类继承自DialogFragment,并在其中实现loadingDialog的显示和隐藏逻辑。
public class LoadingDialogFragment extends DialogFragment {
public LoadingDialogFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(STYLE_NO_TITLE, android.R.style.Theme_Holo_Light_Dialog);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_loading_dialog, container, false);
return view;
}
}
在上面的代码中,我们创建了一个LoadingDialogFragment类,并重写了onCreate和onCreateView方法。在onCreate方法中设置了Dialog的样式为无标题栏的样式,而在onCreateView方法中加载了loadingDialog的布局文件。
2. 创建loadingDialog布局文件
接下来我们需要创建loadingDialog的布局文件,用来展示loading动画。在res/layout目录下创建一个名为fragment_loading_dialog.xml的布局文件,内容如下:
<RelativeLayout xmlns:android="
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent">
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
3. 显示loadingDialog
在需要显示loadingDialog的地方调用以下代码:
LoadingDialogFragment loadingDialog = new LoadingDialogFragment();
loadingDialog.show(getFragmentManager(), "loading_dialog");
4. 隐藏loadingDialog
在需要隐藏loadingDialog的地方调用以下代码:
loadingDialog.dismiss();
5. 完整示例代码
下面是一个完整的示例代码,演示了如何使用LoadingDialogFragment来显示和隐藏loadingDialog:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button showLoadingBtn = findViewById(R.id.showLoadingBtn);
showLoadingBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LoadingDialogFragment loadingDialog = new LoadingDialogFragment();
loadingDialog.show(getSupportFragmentManager(), "loading_dialog");
}
});
Button hideLoadingBtn = findViewById(R.id.hideLoadingBtn);
hideLoadingBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Fragment loadingDialog = getSupportFragmentManager().findFragmentByTag("loading_dialog");
if (loadingDialog != null) {
loadingDialog.dismiss();
}
}
});
}
}
通过上面的步骤,我们成功封装了一个loadingDialog,并且通过DialogFragment的形式展示。这样可以方便的在需要的地方调用显示和隐藏loadingDialog,提高了代码的复用性和可维护性。
总结
本文介绍了如何在Android开发中封装loadingDialog,并以DialogFragment的形式展示。通过封装loadingDialog,可以提高用户体验和代码的可维护性。希望本文对你有所帮助,谢谢阅读!
gantt
title LoadingDialogFragment执行流程
section 创建LoadingDialogFragment对象
创建LoadingDialogFragment对象 :done, a1, 2021-10-16, 2021-10-17
section 显示loadingDialog
显示loadingDialog :done, a2, 2021-10-17, 2021-10-18
section 隐藏loadingDialog
隐藏loadingDialog :done, a3, 2021-10-18, 2021-10-19
通过上面的甘特图,我们可以清晰地看到LoadingDialogFragment的执行流程,包括创建对象、显示loadingDialog和隐藏loadingDialog等步骤。这有助于我们更好地理解整个流程。
希望本文对你有所帮助,谢