【问题标题】:Constraint Layout 0dp does not work on Android View Binding约束布局 0dp 不适用于 Android 视图绑定
【发布时间】:2020-03-27 20:06:12
【问题描述】:

我正在使用 Android 视图绑定(在 Android Studio 3.6 上)。 我正在使用自动生成的类来膨胀 ViewHolder,比如

public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    ViewHolderShowAllProductsBinding binding = ViewHolderShowAllProductsBinding.inflate(LayoutInflater.from(parent.getContext()));
    return new MyViewHolder(binding);
}

MyViewHolder 看起来像这样:

class MyViewHolder extends RecyclerView.ViewHolder {
    public ViewHolderShowAllProductsBinding binding;

    public MyViewHolder(ViewHolderShowAllProductsBinding binding) {
        super(binding.getRoot());
        this.binding = binding;
    }
}

但这会产生如下 UI 错误:

当使用正常的通货膨胀和 findViewById 时,它会产生正确的结果:

由于我在有错误的地方使用了 ConstraintLayout 和 0dp,这让我相信 View Binding 膨胀不适用于 ConstraintLayout 的 0dp。

我说的对吗?解决方法是什么?

【问题讨论】:

    标签: android android-studio android-viewbinding


    【解决方案1】:

    在 onCreateViewHolder 方法中以这种方式使用 DatabindingUtils

    DataBindingUtil.inflate(LayoutInflater.from(viewGroup.getContext()),
                        R.layout.your_layout, viewGroup, false);
    

    【讨论】:

      【解决方案2】:

      我刚刚解决了它,你应该尝试用 3 个参数调用inflate 来传递父级。而不是这个

      public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
          ViewHolderShowAllProductsBinding binding = ViewHolderShowAllProductsBinding.inflate(LayoutInflater.from(parent.getContext()));
          return new MyViewHolder(binding);
      }
      

      试试这个:

      public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
          ViewHolderShowAllProductsBinding binding = ViewHolderShowAllProductsBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false); // change this
          return new MyViewHolder(binding);
      }
      

      【讨论】:

        猜你喜欢
        • 2021-01-26
        • 2019-01-05
        • 1970-01-01
        • 2017-12-09
        • 2021-04-13
        • 2016-10-03
        • 2023-04-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多