Adding PageRow to BrowseFragment demo.
Change-Id: I4669effcddb101fb63a8f32ef7de380303648d23
This commit is contained in:
@@ -64,7 +64,9 @@ for line in file:
|
||||
line = line.replace('DetailsActivity', 'DetailsSupportActivity')
|
||||
line = line.replace('SearchActivity', 'SearchSupportActivity')
|
||||
line = line.replace('RowsActivity', 'RowsSupportActivity')
|
||||
line = line.replace('RowsFragment', 'RowsSupportFragment')
|
||||
line = line.replace('GuidedStepHalfScreenActivity', 'GuidedStepSupportHalfScreenActivity')
|
||||
line = line.replace('MainFragmentAdapterFactory', 'MainSupportFragmentAdapterFactory')
|
||||
outfile.write(line)
|
||||
file.close()
|
||||
outfile.close()
|
||||
|
||||
43
samples/SupportLeanbackDemos/res/layout/page_fragment.xml
Normal file
43
samples/SupportLeanbackDemos/res/layout/page_fragment.xml
Normal 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>
|
||||
@@ -13,22 +13,30 @@
|
||||
*/
|
||||
package com.example.android.leanback;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
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.HeaderItem;
|
||||
import android.support.v17.leanback.widget.ImageCardView;
|
||||
import android.support.v17.leanback.widget.ListRow;
|
||||
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.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.PresenterSelector;
|
||||
import android.support.v17.leanback.widget.Row;
|
||||
import android.support.v17.leanback.widget.RowPresenter;
|
||||
import android.support.v4.app.ActivityOptionsCompat;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
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 boolean TEST_ENTRANCE_TRANSITION = true;
|
||||
private static final int NUM_ROWS = 10;
|
||||
private static final int NUM_ROWS = 4;
|
||||
|
||||
private ArrayObjectAdapter mRowsAdapter;
|
||||
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 mCardPresenter2 = new CardPresenter(R.style.MyImageCardViewTheme);
|
||||
|
||||
public BrowseFragment() {
|
||||
setMainFragmentAdapterFactory(new MainFragmentFactorAdapterImpl());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
Log.i(TAG, "onCreate");
|
||||
@@ -73,8 +85,7 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
|
||||
|
||||
if (isShowingHeaders()) {
|
||||
mBackgroundHelper.setBackground(getActivity(), null);
|
||||
}
|
||||
else if (item instanceof PhotoItem) {
|
||||
} else if (item instanceof PhotoItem) {
|
||||
mBackgroundHelper.setBackground(
|
||||
getActivity(), ((PhotoItem) item).getImageResourceId());
|
||||
}
|
||||
@@ -95,30 +106,64 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(
|
||||
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
return super.onCreateView(inflater, container, savedInstanceState);
|
||||
}
|
||||
|
||||
private void setupRows() {
|
||||
ListRowPresenter lrp = new ListRowPresenter();
|
||||
|
||||
mRowsAdapter = new ArrayObjectAdapter(lrp);
|
||||
|
||||
mRowsAdapter = new ArrayObjectAdapter(new MyPresenterSelector());
|
||||
setAdapter(mRowsAdapter);
|
||||
}
|
||||
|
||||
private void loadData() {
|
||||
for (int i = 0; i < NUM_ROWS; ++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));
|
||||
int i = 0;
|
||||
for (; i < NUM_ROWS; ++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 {
|
||||
@@ -156,4 +201,125 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,22 +15,30 @@
|
||||
*/
|
||||
package com.example.android.leanback;
|
||||
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
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.HeaderItem;
|
||||
import android.support.v17.leanback.widget.ImageCardView;
|
||||
import android.support.v17.leanback.widget.ListRow;
|
||||
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.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.PresenterSelector;
|
||||
import android.support.v17.leanback.widget.Row;
|
||||
import android.support.v17.leanback.widget.RowPresenter;
|
||||
import android.support.v4.app.ActivityOptionsCompat;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
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 boolean TEST_ENTRANCE_TRANSITION = true;
|
||||
private static final int NUM_ROWS = 10;
|
||||
private static final int NUM_ROWS = 4;
|
||||
|
||||
private ArrayObjectAdapter mRowsAdapter;
|
||||
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 mCardPresenter2 = new CardPresenter(R.style.MyImageCardViewTheme);
|
||||
|
||||
public BrowseSupportFragment() {
|
||||
setMainSupportFragmentAdapterFactory(new MainFragmentFactorAdapterImpl());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
Log.i(TAG, "onCreate");
|
||||
@@ -75,8 +87,7 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
|
||||
|
||||
if (isShowingHeaders()) {
|
||||
mBackgroundHelper.setBackground(getActivity(), null);
|
||||
}
|
||||
else if (item instanceof PhotoItem) {
|
||||
} else if (item instanceof PhotoItem) {
|
||||
mBackgroundHelper.setBackground(
|
||||
getActivity(), ((PhotoItem) item).getImageResourceId());
|
||||
}
|
||||
@@ -97,30 +108,64 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(
|
||||
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
return super.onCreateView(inflater, container, savedInstanceState);
|
||||
}
|
||||
|
||||
private void setupRows() {
|
||||
ListRowPresenter lrp = new ListRowPresenter();
|
||||
|
||||
mRowsAdapter = new ArrayObjectAdapter(lrp);
|
||||
|
||||
mRowsAdapter = new ArrayObjectAdapter(new MyPresenterSelector());
|
||||
setAdapter(mRowsAdapter);
|
||||
}
|
||||
|
||||
private void loadData() {
|
||||
for (int i = 0; i < NUM_ROWS; ++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));
|
||||
int i = 0;
|
||||
for (; i < NUM_ROWS; ++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 {
|
||||
@@ -158,4 +203,125 @@ public class BrowseSupportFragment extends android.support.v17.leanback.app.Brow
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user