カスタムlistviewの開発で問題が発生

1263 ワード

小さなニーズがあり、ヘッダがitemに存在することをコードし、デフォルトのlayoutparamsを生成するために使用されます.
//read layout parameters       AbsListView.LayoutParams layoutParams = (LayoutParams) pinnedView.getLayoutParams();
if (layoutParams == null) {            layoutParams = this.generateDefaultLayoutParams();            pinnedView.setLayoutParams(layoutParams);        }
anroid5.0.1の実装
  @Override
    protected ViewGroup.LayoutParams generateDefaultLayoutParams() {
        return new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT, 0);
    }

anroid4.0の実装
    /**
     * Returns a set of default layout parameters. These parameters are requested
     * when the View passed to {@link #addView(View)} has no layout parameters
     * already set. If null is returned, an exception is thrown from addView.
     *
     * @return a set of default layout parameters or null
     */
    protected LayoutParams generateDefaultLayoutParams() {
        return new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    }

問題を発見したかもしれませんが、低バージョンのg e n erateDefaultLayoutParamsはView Groupのlayoutparamsを生成しています.AbsListViewに強制的に移行する場合は.これは間違いだ父はどうして息子に似ているのか.