当前位置: 首页 > wzjs >正文

协作网站是什么网站建设为什么有些100元的

协作网站是什么,网站建设为什么有些100元的,备案的网站转移,网站年费怎么做分录在Android中创建DialogFragment DialogFragment是Android中创建对话框的推荐方式,它比传统的Dialog类更灵活且生命周期更完善。以下是创建DialogFragment的完整指南: 基本创建步骤 1. 继承DialogFragment类 public class MyDialogFragment extends D…

在Android中创建DialogFragment

DialogFragment是Android中创建对话框的推荐方式,它比传统的Dialog类更灵活且生命周期更完善。以下是创建DialogFragment的完整指南:

基本创建步骤

1. 继承DialogFragment类

public class MyDialogFragment extends DialogFragment {// 对话框逻辑将在这里实现
}

2. 重写onCreateView或onCreateDialog

有两种主要方式创建对话框内容:

方式一:使用自定义布局(重写onCreateView)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// 膨胀自定义布局View view = inflater.inflate(R.layout.fragment_dialog, container, false);// 初始化视图组件Button button = view.findViewById(R.id.button);button.setOnClickListener(v -> {// 处理点击事件dismiss(); // 关闭对话框});return view;
}
方式二:使用AlertDialog(重写onCreateDialog)
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());builder.setTitle("提示").setMessage("这是一个对话框示例").setPositiveButton("确定", (dialog, which) -> {// 确定按钮点击处理}).setNegativeButton("取消", (dialog, which) -> {// 取消按钮点击处理});return builder.create();
}

3. 显示对话框

在Activity或Fragment中显示对话框:

MyDialogFragment dialogFragment = new MyDialogFragment();
dialogFragment.show(getSupportFragmentManager(), "MyDialogFragment");

完整示例代码

自定义布局对话框示例

1. 布局文件 (res/layout/fragment_dialog.xml)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"android:padding="16dp"><TextViewandroid:id="@+id/title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="自定义对话框"android:textSize="18sp"/><EditTextandroid:id="@+id/input"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入内容"android:layout_marginTop="16dp"/><Buttonandroid:id="@+id/ok_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="end"android:layout_marginTop="16dp"android:text="确定"/>
</LinearLayout>

2. DialogFragment实现

public class CustomDialogFragment extends DialogFragment {public interface DialogListener {void onDialogPositiveClick(String inputText);}private DialogListener listener;public void setDialogListener(DialogListener listener) {this.listener = listener;}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.fragment_dialog, container, false);EditText input = view.findViewById(R.id.input);Button okButton = view.findViewById(R.id.ok_button);okButton.setOnClickListener(v -> {if (listener != null) {listener.onDialogPositiveClick(input.getText().toString());}dismiss();});return view;}
}

3. 在Activity中使用

public class MainActivity extends AppCompatActivity implements CustomDialogFragment.DialogListener {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button showDialogBtn = findViewById(R.id.show_dialog_btn);showDialogBtn.setOnClickListener(v -> {CustomDialogFragment dialog = new CustomDialogFragment();dialog.setDialogListener(this);dialog.show(getSupportFragmentManager(), "CustomDialog");});}@Overridepublic void onDialogPositiveClick(String inputText) {// 处理对话框返回的数据Toast.makeText(this, "输入内容: " + inputText, Toast.LENGTH_SHORT).show();}
}

高级用法

1. 设置对话框样式

在styles.xml中定义样式:

<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert"><item name="colorPrimary">@color/colorPrimary</item><item name="android:windowBackground">@drawable/dialog_background</item><item name="android:windowNoTitle">true</item>
</style>

在DialogFragment中应用样式:

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setStyle(DialogFragment.STYLE_NORMAL, R.style.MyDialogTheme);
}

2. 全屏对话框

@Override
public void onStart() {super.onStart();Dialog dialog = getDialog();if (dialog != null) {int width = ViewGroup.LayoutParams.MATCH_PARENT;int height = ViewGroup.LayoutParams.MATCH_PARENT;dialog.getWindow().setLayout(width, height);}
}

3. 对话框动画

创建动画资源(res/anim/):

slide_in_bottom.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="@android:integer/config_shortAnimTime"android:fromYDelta="100%"android:toYDelta="0%"/>
</set>

slide_out_bottom.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="@android:integer/config_shortAnimTime"android:fromYDelta="0%"android:toYDelta="100%"/>
</set>

应用动画:

@Override
public void onActivityCreated(Bundle arg0) {super.onActivityCreated(arg0);getDialog().getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
}

注意事项

  1. 生命周期:DialogFragment有自己的生命周期,与Activity/Fragment同步
  2. 旋转处理:自动处理屏幕旋转,无需额外配置
  3. 内存泄漏:避免持有Activity的强引用
  4. 显示位置:使用show()方法的第二个参数作为tag,可用于后续查找
  5. AndroidX版本:建议使用androidx.fragment.app.DialogFragment而非旧版support库

DialogFragment提供了比传统Dialog更强大的功能,特别是在处理生命周期和配置变更时表现更好,是Android开发中实现对话框功能的首选方式。

http://www.dtcms.com/wzjs/592323.html

相关文章:

  • 乐清网站建设公司哪家好江西建筑人才网
  • 重庆网站APP网站域名如何从代理商那里转出来
  • flash网站策划书保定网站推广公司
  • 密云建站推广网站后台编辑器内容不显示
  • 大连 网站维护网站推广实施方案
  • 好网站推荐昌吉网站建设公司
  • 网站开发团队名称支付网站开发
  • 聚化网网站平台销售模式有哪些
  • 北京做的比较好的网站公司中装建设吧
  • 不同域名一样的网站网站服务器设置
  • 网站做的好坏主要看网站建设都包含什么步骤
  • 网站域解析查询厦门网站建设2
  • 官方网站开发方案网站主办单位负责人
  • 桐乡网站开发室内设计培训价格
  • 驻马店建设网站如何在百度举报网站
  • 如何做网站 优帮云江西省网站建设先进表彰
  • 群网站建设合同sqlite wordpress
  • ysl千人千色t9t9t90网页版排名优化是怎么做的
  • 电影网站建设哪家便宜在线测评网站怎么做
  • 网站源代码购买我想创业做网站
  • 贵阳市做网站的公司iphone做网站服务器
  • 做专业网站设计多少钱百度平台
  • 外贸wap网站wordpress搜索查询插件
  • 比58同城做的好的网站变装 Wordpress 小说
  • 五莲做网站建设局的证件在哪个网站查
  • 湘潭企业网站建设 磐石网络广告公司叫什么名字好
  • 榆林网站制作网站建设主题大全
  • 分类信息网站建设计划电商培训内容有哪些
  • 如何规范使用静态网站云端网络网站
  • 电商网站建设特色wordpress wp_cache_get