Adding PageRow to BrowseFragment demo.

Change-Id: I4669effcddb101fb63a8f32ef7de380303648d23
This commit is contained in:
susnata
2016-03-03 16:30:54 -08:00
parent f0fcd7111d
commit 35e26312db
4 changed files with 425 additions and 48 deletions

View File

@@ -64,7 +64,9 @@ for line in file:
line = line.replace('DetailsActivity', 'DetailsSupportActivity') line = line.replace('DetailsActivity', 'DetailsSupportActivity')
line = line.replace('SearchActivity', 'SearchSupportActivity') line = line.replace('SearchActivity', 'SearchSupportActivity')
line = line.replace('RowsActivity', 'RowsSupportActivity') line = line.replace('RowsActivity', 'RowsSupportActivity')
line = line.replace('RowsFragment', 'RowsSupportFragment')
line = line.replace('GuidedStepHalfScreenActivity', 'GuidedStepSupportHalfScreenActivity') line = line.replace('GuidedStepHalfScreenActivity', 'GuidedStepSupportHalfScreenActivity')
line = line.replace('MainFragmentAdapterFactory', 'MainSupportFragmentAdapterFactory')
outfile.write(line) outfile.write(line)
file.close() file.close()
outfile.close() outfile.close()

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container_list"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentRight="true"
android:layout_marginRight="128dp"
android:layout_centerVertical="true">
<EditText
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Header 1"
android:layout_margin="16dp"
android:focusable="true"
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large" />
<EditText
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Header 2"
android:layout_margin="16dp"
android:focusable="true"
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium" />
<EditText
android:id="@+id/tv3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Header 3"
android:layout_margin="16dp"
android:focusable="true"
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small" />
</LinearLayout>
</RelativeLayout>

View File

@@ -13,22 +13,30 @@
*/ */
package com.example.android.leanback; package com.example.android.leanback;
import android.app.Fragment;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.support.v17.leanback.app.GuidedStepFragment; import android.support.v17.leanback.app.GuidedStepFragment;
import android.support.v17.leanback.app.RowsFragment;
import android.support.v17.leanback.app.RowsFragmentAdapter;
import android.support.v17.leanback.widget.ArrayObjectAdapter; import android.support.v17.leanback.widget.ArrayObjectAdapter;
import android.support.v17.leanback.widget.HeaderItem; import android.support.v17.leanback.widget.HeaderItem;
import android.support.v17.leanback.widget.ImageCardView; import android.support.v17.leanback.widget.ImageCardView;
import android.support.v17.leanback.widget.ListRow; import android.support.v17.leanback.widget.ListRow;
import android.support.v17.leanback.widget.ListRowPresenter; import android.support.v17.leanback.widget.ListRowPresenter;
import android.support.v17.leanback.widget.ObjectAdapter;
import android.support.v17.leanback.widget.OnItemViewClickedListener; import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener; import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.PageRow;
import android.support.v17.leanback.widget.PageRowPresenter;
import android.support.v17.leanback.widget.Presenter; import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.PresenterSelector;
import android.support.v17.leanback.widget.Row; import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowPresenter; import android.support.v17.leanback.widget.RowPresenter;
import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.app.ActivityOptionsCompat;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -36,7 +44,7 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
private static final String TAG = "leanback.BrowseFragment"; private static final String TAG = "leanback.BrowseFragment";
private static final boolean TEST_ENTRANCE_TRANSITION = true; private static final boolean TEST_ENTRANCE_TRANSITION = true;
private static final int NUM_ROWS = 10; private static final int NUM_ROWS = 4;
private ArrayObjectAdapter mRowsAdapter; private ArrayObjectAdapter mRowsAdapter;
private BackgroundHelper mBackgroundHelper = new BackgroundHelper(); private BackgroundHelper mBackgroundHelper = new BackgroundHelper();
@@ -46,6 +54,10 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
final CardPresenter mCardPresenter = new CardPresenter(); final CardPresenter mCardPresenter = new CardPresenter();
final CardPresenter mCardPresenter2 = new CardPresenter(R.style.MyImageCardViewTheme); final CardPresenter mCardPresenter2 = new CardPresenter(R.style.MyImageCardViewTheme);
public BrowseFragment() {
setMainFragmentAdapterFactory(new MainFragmentFactorAdapterImpl());
}
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
Log.i(TAG, "onCreate"); Log.i(TAG, "onCreate");
@@ -73,8 +85,7 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
if (isShowingHeaders()) { if (isShowingHeaders()) {
mBackgroundHelper.setBackground(getActivity(), null); mBackgroundHelper.setBackground(getActivity(), null);
} } else if (item instanceof PhotoItem) {
else if (item instanceof PhotoItem) {
mBackgroundHelper.setBackground( mBackgroundHelper.setBackground(
getActivity(), ((PhotoItem) item).getImageResourceId()); getActivity(), ((PhotoItem) item).getImageResourceId());
} }
@@ -95,30 +106,64 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
}, 2000); }, 2000);
} }
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return super.onCreateView(inflater, container, savedInstanceState);
}
private void setupRows() { private void setupRows() {
ListRowPresenter lrp = new ListRowPresenter(); mRowsAdapter = new ArrayObjectAdapter(new MyPresenterSelector());
mRowsAdapter = new ArrayObjectAdapter(lrp);
setAdapter(mRowsAdapter); setAdapter(mRowsAdapter);
} }
private void loadData() { private void loadData() {
for (int i = 0; i < NUM_ROWS; ++i) { int i = 0;
ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter((i & 1) == 0 ? for (; i < NUM_ROWS; ++i) {
mCardPresenter : mCardPresenter2);
listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
listRowAdapter.add(new PhotoItem("This is a test", "Only a test", R.drawable.gallery_photo_2));
listRowAdapter.add(new PhotoItem("Android TV", "by Google", R.drawable.gallery_photo_3));
listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_4));
listRowAdapter.add(new PhotoItem("GuidedStep (Slide left/right)", R.drawable.gallery_photo_5));
listRowAdapter.add(new PhotoItem("GuidedStep (Slide bottom up)", "Open GuidedStepFragment", R.drawable.gallery_photo_6));
listRowAdapter.add(new PhotoItem("Android TV", "open RowsActivity", R.drawable.gallery_photo_7));
listRowAdapter.add(new PhotoItem("Leanback", "open BrowseActivity", R.drawable.gallery_photo_8));
HeaderItem header = new HeaderItem(i, "Row " + i); HeaderItem header = new HeaderItem(i, "Row " + i);
mRowsAdapter.add(new ListRow(header, listRowAdapter)); mRowsAdapter.add(new ListRow(header, createListRowAdapter(i)));
} }
HeaderItem header = new HeaderItem(NUM_ROWS, "Page Row " + 0);
mRowsAdapter.add(new PageRow(header));
header = new HeaderItem(NUM_ROWS, "Page Row " + 1);
mRowsAdapter.add(new PageRow(header));
}
private ArrayObjectAdapter createListRowAdapter(int i) {
ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter((i & 1) == 0 ?
mCardPresenter : mCardPresenter2);
listRowAdapter.add(new PhotoItem(
"Hello world",
R.drawable.gallery_photo_1));
listRowAdapter.add(new PhotoItem(
"This is a test",
"Only a test",
R.drawable.gallery_photo_2));
listRowAdapter.add(new PhotoItem(
"Android TV",
"by Google",
R.drawable.gallery_photo_3));
listRowAdapter.add(new PhotoItem(
"Leanback",
R.drawable.gallery_photo_4));
listRowAdapter.add(new PhotoItem(
"GuidedStep (Slide left/right)",
R.drawable.gallery_photo_5));
listRowAdapter.add(new PhotoItem(
"GuidedStep (Slide bottom up)",
"Open GuidedStepFragment",
R.drawable.gallery_photo_6));
listRowAdapter.add(new PhotoItem(
"Android TV",
"open RowsActivity",
R.drawable.gallery_photo_7));
listRowAdapter.add(new PhotoItem(
"Leanback",
"open BrowseActivity",
R.drawable.gallery_photo_8));
return listRowAdapter;
} }
private final class ItemViewClickedListener implements OnItemViewClickedListener { private final class ItemViewClickedListener implements OnItemViewClickedListener {
@@ -156,4 +201,125 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
getActivity().startActivity(intent, bundle); getActivity().startActivity(intent, bundle);
} }
} }
private static class MainFragmentFactorAdapterImpl extends MainFragmentAdapterFactory {
private AbstractMainFragmentAdapter pageFragmentAdapter1 = new PageFragmentAdapterImpl();
private RowsFragmentAdapter gridPageFragmentAdapter;
@Override
public AbstractMainFragmentAdapter getPageFragmentAdapter(
ObjectAdapter adapter, int position) {
if (position == 4) {
return pageFragmentAdapter1;
} else {
if (gridPageFragmentAdapter == null) {
gridPageFragmentAdapter = new GridPageFragmentAdapterImpl();
}
return gridPageFragmentAdapter;
}
}
}
private static class PageFragmentAdapterImpl extends AbstractMainFragmentAdapter {
private Fragment mFragment;
PageFragmentAdapterImpl() {
setScalingEnabled(true);
}
@Override
public Fragment getFragment() {
if (mFragment == null) {
mFragment = new SampleFragment();
}
return mFragment;
}
}
private static class GridPageFragmentAdapterImpl extends RowsFragmentAdapter {
final CardPresenter mCardPresenter = new CardPresenter();
final CardPresenter mCardPresenter2 = new CardPresenter(R.style.MyImageCardViewTheme);
private RowsFragment mFragment;
GridPageFragmentAdapterImpl() {
setScalingEnabled(true);
}
protected Fragment createFragment() {
if (mFragment == null) {
mFragment = new RowsFragment();
ArrayObjectAdapter adapter = new ArrayObjectAdapter(new ListRowPresenter());
for (int i = 0; i < 4; i++) {
ListRow row = new ListRow(new HeaderItem("Row " + i), createListRowAdapter(i));
adapter.add(row);
}
mFragment.setAdapter(adapter);
}
return mFragment;
}
private ArrayObjectAdapter createListRowAdapter(int i) {
ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter((i & 1) == 0 ?
mCardPresenter : mCardPresenter2);
listRowAdapter.add(new PhotoItem(
"Hello world",
R.drawable.gallery_photo_1));
listRowAdapter.add(new PhotoItem(
"This is a test",
"Only a test",
R.drawable.gallery_photo_2));
listRowAdapter.add(new PhotoItem(
"Android TV",
"by Google",
R.drawable.gallery_photo_3));
listRowAdapter.add(new PhotoItem(
"Leanback",
R.drawable.gallery_photo_4));
listRowAdapter.add(new PhotoItem(
"GuidedStep (Slide left/right)",
R.drawable.gallery_photo_5));
listRowAdapter.add(new PhotoItem(
"GuidedStep (Slide bottom up)",
"Open GuidedStepFragment",
R.drawable.gallery_photo_6));
listRowAdapter.add(new PhotoItem(
"Android TV",
"open RowsActivity",
R.drawable.gallery_photo_7));
listRowAdapter.add(new PhotoItem(
"Leanback",
"open BrowseActivity",
R.drawable.gallery_photo_8));
return listRowAdapter;
}
}
private static class SampleFragment extends Fragment {
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.page_fragment, container, false);
}
}
private static class MyPresenterSelector extends PresenterSelector {
private Presenter[] presenters = {
new ListRowPresenter(),
new PageRowPresenter()
};
@Override
public Presenter getPresenter(Object item) {
if (item instanceof PageRow) {
return presenters[1];
}
return presenters[0];
}
@Override
public Presenter[] getPresenters() {
return presenters;
}
}
} }

View File

@@ -15,22 +15,30 @@
*/ */
package com.example.android.leanback; package com.example.android.leanback;
import android.support.v4.app.Fragment;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.support.v17.leanback.app.GuidedStepSupportFragment; import android.support.v17.leanback.app.GuidedStepSupportFragment;
import android.support.v17.leanback.app.RowsSupportFragment;
import android.support.v17.leanback.app.RowsSupportFragmentAdapter;
import android.support.v17.leanback.widget.ArrayObjectAdapter; import android.support.v17.leanback.widget.ArrayObjectAdapter;
import android.support.v17.leanback.widget.HeaderItem; import android.support.v17.leanback.widget.HeaderItem;
import android.support.v17.leanback.widget.ImageCardView; import android.support.v17.leanback.widget.ImageCardView;
import android.support.v17.leanback.widget.ListRow; import android.support.v17.leanback.widget.ListRow;
import android.support.v17.leanback.widget.ListRowPresenter; import android.support.v17.leanback.widget.ListRowPresenter;
import android.support.v17.leanback.widget.ObjectAdapter;
import android.support.v17.leanback.widget.OnItemViewClickedListener; import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener; import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.PageRow;
import android.support.v17.leanback.widget.PageRowPresenter;
import android.support.v17.leanback.widget.Presenter; import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.PresenterSelector;
import android.support.v17.leanback.widget.Row; import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowPresenter; import android.support.v17.leanback.widget.RowPresenter;
import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.app.ActivityOptionsCompat;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -38,7 +46,7 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
private static final String TAG = "leanback.BrowseSupportFragment"; private static final String TAG = "leanback.BrowseSupportFragment";
private static final boolean TEST_ENTRANCE_TRANSITION = true; private static final boolean TEST_ENTRANCE_TRANSITION = true;
private static final int NUM_ROWS = 10; private static final int NUM_ROWS = 4;
private ArrayObjectAdapter mRowsAdapter; private ArrayObjectAdapter mRowsAdapter;
private BackgroundHelper mBackgroundHelper = new BackgroundHelper(); private BackgroundHelper mBackgroundHelper = new BackgroundHelper();
@@ -48,6 +56,10 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
final CardPresenter mCardPresenter = new CardPresenter(); final CardPresenter mCardPresenter = new CardPresenter();
final CardPresenter mCardPresenter2 = new CardPresenter(R.style.MyImageCardViewTheme); final CardPresenter mCardPresenter2 = new CardPresenter(R.style.MyImageCardViewTheme);
public BrowseSupportFragment() {
setMainSupportFragmentAdapterFactory(new MainFragmentFactorAdapterImpl());
}
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
Log.i(TAG, "onCreate"); Log.i(TAG, "onCreate");
@@ -75,8 +87,7 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
if (isShowingHeaders()) { if (isShowingHeaders()) {
mBackgroundHelper.setBackground(getActivity(), null); mBackgroundHelper.setBackground(getActivity(), null);
} } else if (item instanceof PhotoItem) {
else if (item instanceof PhotoItem) {
mBackgroundHelper.setBackground( mBackgroundHelper.setBackground(
getActivity(), ((PhotoItem) item).getImageResourceId()); getActivity(), ((PhotoItem) item).getImageResourceId());
} }
@@ -97,30 +108,64 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
}, 2000); }, 2000);
} }
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return super.onCreateView(inflater, container, savedInstanceState);
}
private void setupRows() { private void setupRows() {
ListRowPresenter lrp = new ListRowPresenter(); mRowsAdapter = new ArrayObjectAdapter(new MyPresenterSelector());
mRowsAdapter = new ArrayObjectAdapter(lrp);
setAdapter(mRowsAdapter); setAdapter(mRowsAdapter);
} }
private void loadData() { private void loadData() {
for (int i = 0; i < NUM_ROWS; ++i) { int i = 0;
ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter((i & 1) == 0 ? for (; i < NUM_ROWS; ++i) {
mCardPresenter : mCardPresenter2);
listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
listRowAdapter.add(new PhotoItem("This is a test", "Only a test", R.drawable.gallery_photo_2));
listRowAdapter.add(new PhotoItem("Android TV", "by Google", R.drawable.gallery_photo_3));
listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_4));
listRowAdapter.add(new PhotoItem("GuidedStep (Slide left/right)", R.drawable.gallery_photo_5));
listRowAdapter.add(new PhotoItem("GuidedStep (Slide bottom up)", "Open GuidedStepSupportFragment", R.drawable.gallery_photo_6));
listRowAdapter.add(new PhotoItem("Android TV", "open RowsSupportActivity", R.drawable.gallery_photo_7));
listRowAdapter.add(new PhotoItem("Leanback", "open BrowseSupportActivity", R.drawable.gallery_photo_8));
HeaderItem header = new HeaderItem(i, "Row " + i); HeaderItem header = new HeaderItem(i, "Row " + i);
mRowsAdapter.add(new ListRow(header, listRowAdapter)); mRowsAdapter.add(new ListRow(header, createListRowAdapter(i)));
} }
HeaderItem header = new HeaderItem(NUM_ROWS, "Page Row " + 0);
mRowsAdapter.add(new PageRow(header));
header = new HeaderItem(NUM_ROWS, "Page Row " + 1);
mRowsAdapter.add(new PageRow(header));
}
private ArrayObjectAdapter createListRowAdapter(int i) {
ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter((i & 1) == 0 ?
mCardPresenter : mCardPresenter2);
listRowAdapter.add(new PhotoItem(
"Hello world",
R.drawable.gallery_photo_1));
listRowAdapter.add(new PhotoItem(
"This is a test",
"Only a test",
R.drawable.gallery_photo_2));
listRowAdapter.add(new PhotoItem(
"Android TV",
"by Google",
R.drawable.gallery_photo_3));
listRowAdapter.add(new PhotoItem(
"Leanback",
R.drawable.gallery_photo_4));
listRowAdapter.add(new PhotoItem(
"GuidedStep (Slide left/right)",
R.drawable.gallery_photo_5));
listRowAdapter.add(new PhotoItem(
"GuidedStep (Slide bottom up)",
"Open GuidedStepSupportFragment",
R.drawable.gallery_photo_6));
listRowAdapter.add(new PhotoItem(
"Android TV",
"open RowsSupportActivity",
R.drawable.gallery_photo_7));
listRowAdapter.add(new PhotoItem(
"Leanback",
"open BrowseSupportActivity",
R.drawable.gallery_photo_8));
return listRowAdapter;
} }
private final class ItemViewClickedListener implements OnItemViewClickedListener { private final class ItemViewClickedListener implements OnItemViewClickedListener {
@@ -158,4 +203,125 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
getActivity().startActivity(intent, bundle); getActivity().startActivity(intent, bundle);
} }
} }
private static class MainFragmentFactorAdapterImpl extends MainSupportFragmentAdapterFactory {
private AbstractMainFragmentAdapter pageFragmentAdapter1 = new PageFragmentAdapterImpl();
private RowsSupportFragmentAdapter gridPageFragmentAdapter;
@Override
public AbstractMainFragmentAdapter getPageFragmentAdapter(
ObjectAdapter adapter, int position) {
if (position == 4) {
return pageFragmentAdapter1;
} else {
if (gridPageFragmentAdapter == null) {
gridPageFragmentAdapter = new GridPageFragmentAdapterImpl();
}
return gridPageFragmentAdapter;
}
}
}
private static class PageFragmentAdapterImpl extends AbstractMainFragmentAdapter {
private Fragment mFragment;
PageFragmentAdapterImpl() {
setScalingEnabled(true);
}
@Override
public Fragment getFragment() {
if (mFragment == null) {
mFragment = new SampleFragment();
}
return mFragment;
}
}
private static class GridPageFragmentAdapterImpl extends RowsSupportFragmentAdapter {
final CardPresenter mCardPresenter = new CardPresenter();
final CardPresenter mCardPresenter2 = new CardPresenter(R.style.MyImageCardViewTheme);
private RowsSupportFragment mFragment;
GridPageFragmentAdapterImpl() {
setScalingEnabled(true);
}
protected Fragment createFragment() {
if (mFragment == null) {
mFragment = new RowsSupportFragment();
ArrayObjectAdapter adapter = new ArrayObjectAdapter(new ListRowPresenter());
for (int i = 0; i < 4; i++) {
ListRow row = new ListRow(new HeaderItem("Row " + i), createListRowAdapter(i));
adapter.add(row);
}
mFragment.setAdapter(adapter);
}
return mFragment;
}
private ArrayObjectAdapter createListRowAdapter(int i) {
ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter((i & 1) == 0 ?
mCardPresenter : mCardPresenter2);
listRowAdapter.add(new PhotoItem(
"Hello world",
R.drawable.gallery_photo_1));
listRowAdapter.add(new PhotoItem(
"This is a test",
"Only a test",
R.drawable.gallery_photo_2));
listRowAdapter.add(new PhotoItem(
"Android TV",
"by Google",
R.drawable.gallery_photo_3));
listRowAdapter.add(new PhotoItem(
"Leanback",
R.drawable.gallery_photo_4));
listRowAdapter.add(new PhotoItem(
"GuidedStep (Slide left/right)",
R.drawable.gallery_photo_5));
listRowAdapter.add(new PhotoItem(
"GuidedStep (Slide bottom up)",
"Open GuidedStepSupportFragment",
R.drawable.gallery_photo_6));
listRowAdapter.add(new PhotoItem(
"Android TV",
"open RowsSupportActivity",
R.drawable.gallery_photo_7));
listRowAdapter.add(new PhotoItem(
"Leanback",
"open BrowseSupportActivity",
R.drawable.gallery_photo_8));
return listRowAdapter;
}
}
private static class SampleFragment extends Fragment {
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.page_fragment, container, false);
}
}
private static class MyPresenterSelector extends PresenterSelector {
private Presenter[] presenters = {
new ListRowPresenter(),
new PageRowPresenter()
};
@Override
public Presenter getPresenter(Object item) {
if (item instanceof PageRow) {
return presenters[1];
}
return presenters[0];
}
@Override
public Presenter[] getPresenters() {
return presenters;
}
}
} }