1

ここに画像の説明を入力VerticalGridFragment を使用して、コンテンツの単一のリストを作成しています。アダプターに ArrayObjectAdapter を使用しています。私が気付いたのは、最後の行のデータが正しく配置されていないことです。例:

1) 上記の添付画像をご覧ください。

2) リストが 5 列で構成されていて、最後の行に表示するコンテンツが 4 つしかない場合、Leanback は 2 番目、3 番目、4 番目、5 番目のスロットにコンテンツを表示し、最初のスロットは空になります。

3) その他のケースでは、最後の 5 つのコンテンツが 1、2、3、4 スロットに表示され、最後のコンテンツが 5 番目のスロットに表示される代わりに、最後のコンテンツが完全に新しい行の中央 (3 番目のスロット) に配置されました。

最後の行に関しては、さらに多くの一貫性のないデータ バインディングがあります。

リーンバック ライブラリでこの種の動作に気づいた人はいますか? または、これを修正するための解決策はありますか?

これが私のコードの抜粋です:

private volatile ArrayObjectAdapter listAdapter;

private void setupUX() {
   setSearchAffordanceColor(getResources().getColor(R.color.search_bg_color));
    VerticalGridPresenter verticalGridPresenter = new VerticalGridPresenter();
    verticalGridPresenter.setNumberOfColumns(NUM_COL);
    setGridPresenter(verticalGridPresenter);
    CardView cardView = new CardView();
    queriesFired = new HashMap<>();
    dataHandler = new Handler(getActivity().getMainLooper());
    listAdapter = new ArrayObjectAdapter(cardView);
    setAdapter(listAdapter);
    new Handler().postDelayed(() -> startEntranceTransition(), 500);
}

private void populateData() {
    ....
    listAdapter.add(uiContent);
    ....
}
4

2 に答える 2