2017-06-27 16 views
1

ここに私が今持っているものがあります。RowsFragmentで行のヘッダーを常に表示する方法

enter image description here

単に私のRowsFragmentこれはだから私は常に目に見えるヘッダを作りたい、私は正確に何をしたいのか

enter image description here

ある

public static class SampleFragmentB extends RowsFragment { 
     private final ArrayObjectAdapter mRowsAdapter; 

     public SampleFragmentB() { 
      mRowsAdapter = new ArrayObjectAdapter(new ShadowRowPresenterSelector()); 

      setAdapter(mRowsAdapter); 
      setOnItemViewClickedListener(new OnItemViewClickedListener() { 
       @Override 
       public void onItemClicked(
         Presenter.ViewHolder itemViewHolder, 
         Object item, 
         RowPresenter.ViewHolder rowViewHolder, 
         Row row) { 
        Toast.makeText(getActivity(), "Implement click handler", Toast.LENGTH_SHORT) 
          .show(); 
       } 
      }); 
     } 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      createRows(); 
      getMainFragmentAdapter().getFragmentHost().notifyDataReady(getMainFragmentAdapter()); 
     } 

     private void createRows() { 
       String json = Utils.inputStreamToString(getResources().openRawResource(
         R.raw.page_row_example)); 
       CardRow[] rows = new Gson().fromJson(json, CardRow[].class); 
       for (CardRow row : rows) { 
        mRowsAdapter.add(createCardRow(row)); 
       } 
     } 

     private Row createCardRow(CardRow cardRow) { 
      PresenterSelector presenterSelector = new CardPresenterSelector(getActivity()); 
      ArrayObjectAdapter adapter = new ArrayObjectAdapter(presenterSelector); 
      for (Card card : cardRow.getCards()) { 
       adapter.add(card); 
      } 

      HeaderItem headerItem = new HeaderItem(cardRow.getTitle()); 
      return new CardListRow(headerItem, adapter, cardRow); 
     } 
    } 

、次のようになりですRowsFragmentを選択することも、RowsFragmentに集中することもありません。私は各ヘッダー項目に複数の行を追加するためにleanback v24を使用しています。

答えて

1

Leanback libraryの機能を拡張したAndroid TV用のSofaライブラリを確認して、より強力な機能を提供することができます。 BrowseSupportFragmentでは、mRowsFragment.setExpandtrueである必要があります。その他の参照:how to always show headers in RowsFragment

+0

あなたの助けてくれてありがとうございますが、このプロジェクトのソファは許可されていません。他の解決策がない場合、私はそれを使用する必要があるかもしれません..答えるためにありがとう。 –

関連する問題