You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android自定义Dialog中RecyclerView未正常显示问题求助

问题原因

核心问题出在InputMeasurementActivity的Dialog视图绑定逻辑:

  1. 你提前通过DialogColorListPickerBinding.inflate()生成了绑定实例dialogBinding,并对实例内的recyclerViewColorList完成了布局管理器、适配器配置,但调用dialog.setContentView()时传入的是布局idR.layout.dialog_color_list_picker,而非dialogBinding.getRoot()。这导致你配置的视图和Dialog实际加载的视图是两个完全独立的实例,Dialog内部的RecyclerView没有做任何初始化,自然无法渲染内容。
  2. 次要问题:你给editTextWarnaKulitJari设置了android:clickable="false",会导致点击事件无法触发,Dialog无法弹出。

修复方案

1. 修正Dialog视图设置逻辑

修改initializeColorListPickerDialog()方法,将布局id替换为绑定实例的根视图,同时可给Dialog设置合理宽高避免布局压缩:

private void initializeColorListPickerDialog() {
    addDataToSkinColorRecylcerView();
    // 替换布局id为绑定实例的根View
    dialog.setContentView(dialogBinding.getRoot());
    dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    // 配置Dialog宽高
    WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
    params.width = ViewGroup.LayoutParams.MATCH_PARENT;
    params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
    dialog.getWindow().setAttributes(params);
}

2. 修正EditText点击属性

在activity_input_measurement.xml中,将editTextWarnaKulitJari的android:clickable="false"改为android:clickable="true",或直接移除该属性(控件默认可点击)。

3. 可选优化

可删除dialog_color_list_picker.xml中RecyclerView的app:layout_behavior="@string/appbar_scrolling_view_behavior"属性,该属性在Dialog场景下无实际作用。

内容的提问来源于stack exchange,提问作者Jabal Logian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 06:15:05