0

I'm trying to make the whole row expand when selected in leanback library carousel.

Effect that I want : Effect that I want

I'm working off the android TV sample code. I have tried setExpandedRowHeight(..); and setRowHeight(..);

/**
 * Created by sylversphere on 15-03-16.
 */
public class ExperimentalFragment extends BrowseFragment{

    private ArrayObjectAdapter mRowsAdapter;
    private ExperimentalCardPresenter mCardPresenter;
    private int NUM_ROWS = 20;
    private int NUM_COLS = 40;
    private Context context;

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        context = getActivity();
        setTitle("Hello there you kid"); // Badge, when set, takes precedent
        setHeadersState(HEADERS_DISABLED);
        loadRows();
    }

    private void loadRows() {
        List<Movie> list = MovieList.setupMovies();

        final ListRowPresenter lrp = new ListRowPresenter(FocusHighlight.ZOOM_FACTOR_LARGE);
        lrp.setRowHeight(100);
        lrp.setExpandedRowHeight(200);

        mRowsAdapter = new ArrayObjectAdapter(lrp);

        mCardPresenter = new ExperimentalCardPresenter();

        int i;
        for (i = 0; i < NUM_ROWS; i++) {
            ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(mCardPresenter);
            for (int j = 0; j < NUM_COLS; j++) {
                listRowAdapter.add(list.get(j % 5));
            }
            mRowsAdapter.add(new ListRow(listRowAdapter));
        }

        setAdapter(mRowsAdapter);
    }

    private void say(String s) {
        Toast.makeText(context, "Say : "+s, Toast.LENGTH_SHORT).show();
    }
}

but the rows stay the same. I tried animating rows manually but rows now don't have proper padding between them. How would I make rows expand and keep the padding?

Dreamingwhale
  • 433
  • 6
  • 22

1 Answers1

1

By using setExpandedRowHeight you're just setting the height, but not really expanding the row. You need to explicitly set row view expanded when you want it to be expanded by calling setRowViewExpanded method

public final void setRowViewExpanded (Presenter.ViewHolder holder, boolean expanded)
random
  • 10,238
  • 8
  • 57
  • 101
  • This doesn't expand when row is selected. Rather, it expands row when the gridview (Child of the menu item) is selected. – Dreamingwhale Apr 06 '15 at 01:53