BaseRowSupportFragment.java revision fb11ded6cfa3965883e68625e0c7e14b4b4fe0b3
16193c12a1897723c87b41f4e304a8cd04deef2dcDake Gu/* This file is auto-generated from BaseRowFragment.java. DO NOT MODIFY. */ 26193c12a1897723c87b41f4e304a8cd04deef2dcDake Gu 361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu/* 461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * Copyright (C) 2014 The Android Open Source Project 561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * 661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * in compliance with the License. You may obtain a copy of the License at 861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * 961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * http://www.apache.org/licenses/LICENSE-2.0 1061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * 1161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * Unless required by applicable law or agreed to in writing, software distributed under the License 1261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 1361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * or implied. See the License for the specific language governing permissions and limitations under 1461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * the License. 1561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu */ 1661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gupackage android.support.v17.leanback.app; 1761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 1861905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.support.v4.app.Fragment; 1961905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.os.Bundle; 2061905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.support.v17.leanback.widget.ItemBridgeAdapter; 2161905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.support.v17.leanback.widget.ListRow; 222f5ebf3f6f7bb6a24856f389e369b247118ba119susnataimport android.support.v17.leanback.widget.ObjectAdapter; 230246318f27a905a31df5a8af445cfe67d31dfb68Dake Guimport android.support.v17.leanback.widget.OnChildViewHolderSelectedListener; 242f5ebf3f6f7bb6a24856f389e369b247118ba119susnataimport android.support.v17.leanback.widget.PresenterSelector; 252f5ebf3f6f7bb6a24856f389e369b247118ba119susnataimport android.support.v17.leanback.widget.Row; 262f5ebf3f6f7bb6a24856f389e369b247118ba119susnataimport android.support.v17.leanback.widget.VerticalGridView; 270246318f27a905a31df5a8af445cfe67d31dfb68Dake Guimport android.support.v7.widget.RecyclerView; 2861905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.view.LayoutInflater; 2961905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.view.View; 3061905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.view.ViewGroup; 3161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 3261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu/** 3361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * An internal base class for a fragment containing a list of rows. 3461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu */ 3561905b0b52c50018dcaebcd79699c39b8f28d622Dake Guabstract class BaseRowSupportFragment extends Fragment { 36fb11ded6cfa3965883e68625e0c7e14b4b4fe0b3Susnata Basak private static final String CURRENT_SELECTED_POSITION = "currentSelectedPosition"; 3761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu private ObjectAdapter mAdapter; 3861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu private VerticalGridView mVerticalGridView; 3961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu private PresenterSelector mPresenterSelector; 4061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu private ItemBridgeAdapter mBridgeAdapter; 4161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu private int mSelectedPosition = -1; 42902e68c114f86e8002516ff3f0248b722b6c5711Dake Gu private boolean mPendingTransitionPrepare; 4361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 4442752c860a26deacca04ea9ebeb00ddb4d8ce2fcDake Gu abstract int getLayoutResourceId(); 4561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 460246318f27a905a31df5a8af445cfe67d31dfb68Dake Gu private final OnChildViewHolderSelectedListener mRowSelectedListener = 470246318f27a905a31df5a8af445cfe67d31dfb68Dake Gu new OnChildViewHolderSelectedListener() { 480246318f27a905a31df5a8af445cfe67d31dfb68Dake Gu @Override 490246318f27a905a31df5a8af445cfe67d31dfb68Dake Gu public void onChildViewHolderSelected(RecyclerView parent, 500246318f27a905a31df5a8af445cfe67d31dfb68Dake Gu RecyclerView.ViewHolder view, int position, int subposition) { 510246318f27a905a31df5a8af445cfe67d31dfb68Dake Gu onRowSelected(parent, view, position, subposition); 520246318f27a905a31df5a8af445cfe67d31dfb68Dake Gu } 530246318f27a905a31df5a8af445cfe67d31dfb68Dake Gu }; 5461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 550246318f27a905a31df5a8af445cfe67d31dfb68Dake Gu void onRowSelected(RecyclerView parent, RecyclerView.ViewHolder view, 560246318f27a905a31df5a8af445cfe67d31dfb68Dake Gu int position, int subposition) { 5761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 5861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 5961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu @Override 6061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu public View onCreateView(LayoutInflater inflater, ViewGroup container, 6161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu Bundle savedInstanceState) { 6261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu View view = inflater.inflate(getLayoutResourceId(), container, false); 6361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu mVerticalGridView = findGridViewFromRoot(view); 64902e68c114f86e8002516ff3f0248b722b6c5711Dake Gu if (mPendingTransitionPrepare) { 65902e68c114f86e8002516ff3f0248b722b6c5711Dake Gu mPendingTransitionPrepare = false; 66902e68c114f86e8002516ff3f0248b722b6c5711Dake Gu onTransitionPrepare(); 67902e68c114f86e8002516ff3f0248b722b6c5711Dake Gu } 6861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu return view; 6961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 7061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 7142752c860a26deacca04ea9ebeb00ddb4d8ce2fcDake Gu VerticalGridView findGridViewFromRoot(View view) { 7261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu return (VerticalGridView) view; 7361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 7461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 7561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu @Override 7661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu public void onViewCreated(View view, Bundle savedInstanceState) { 77fb11ded6cfa3965883e68625e0c7e14b4b4fe0b3Susnata Basak if (savedInstanceState != null) { 78fb11ded6cfa3965883e68625e0c7e14b4b4fe0b3Susnata Basak mSelectedPosition = savedInstanceState.getInt(CURRENT_SELECTED_POSITION, -1); 79fb11ded6cfa3965883e68625e0c7e14b4b4fe0b3Susnata Basak } 8061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu if (mBridgeAdapter != null) { 8161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu mVerticalGridView.setAdapter(mBridgeAdapter); 8261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu if (mSelectedPosition != -1) { 8361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu mVerticalGridView.setSelectedPosition(mSelectedPosition); 8461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 8561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 860246318f27a905a31df5a8af445cfe67d31dfb68Dake Gu mVerticalGridView.setOnChildViewHolderSelectedListener(mRowSelectedListener); 8761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 8861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 8961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu @Override 9061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu public void onDestroyView() { 9161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu super.onDestroyView(); 9261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu mVerticalGridView = null; 9361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 9461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 95fb11ded6cfa3965883e68625e0c7e14b4b4fe0b3Susnata Basak @Override 96fb11ded6cfa3965883e68625e0c7e14b4b4fe0b3Susnata Basak public void onSaveInstanceState(Bundle outState) { 97fb11ded6cfa3965883e68625e0c7e14b4b4fe0b3Susnata Basak super.onSaveInstanceState(outState); 98fb11ded6cfa3965883e68625e0c7e14b4b4fe0b3Susnata Basak outState.putInt(CURRENT_SELECTED_POSITION, mSelectedPosition); 99fb11ded6cfa3965883e68625e0c7e14b4b4fe0b3Susnata Basak } 100fb11ded6cfa3965883e68625e0c7e14b4b4fe0b3Susnata Basak 10161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu /** 10261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * Set the presenter selector used to create and bind views. 10361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu */ 10461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu public final void setPresenterSelector(PresenterSelector presenterSelector) { 10561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu mPresenterSelector = presenterSelector; 10661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu updateAdapter(); 10761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 10861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 10961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu /** 11061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * Get the presenter selector used to create and bind views. 11161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu */ 11261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu public final PresenterSelector getPresenterSelector() { 11361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu return mPresenterSelector; 11461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 11561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 11661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu /** 11761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * Sets the adapter for the fragment. 11861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu */ 11961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu public final void setAdapter(ObjectAdapter rowsAdapter) { 12061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu mAdapter = rowsAdapter; 12161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu updateAdapter(); 12261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 12361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 12461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu /** 12561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * Returns the list of rows. 12661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu */ 12761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu public final ObjectAdapter getAdapter() { 12861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu return mAdapter; 12961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 13061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 13161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu /** 13261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * Returns the bridge adapter. 13361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu */ 13442752c860a26deacca04ea9ebeb00ddb4d8ce2fcDake Gu final ItemBridgeAdapter getBridgeAdapter() { 13561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu return mBridgeAdapter; 13661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 13761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 13861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu /** 1393f0f3eb255bde49549a77c0b5d252decaa2a0202Dake Gu * Sets the selected row position with smooth animation. 14061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu */ 14161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu public void setSelectedPosition(int position) { 1423f0f3eb255bde49549a77c0b5d252decaa2a0202Dake Gu setSelectedPosition(position, true); 1433f0f3eb255bde49549a77c0b5d252decaa2a0202Dake Gu } 1443f0f3eb255bde49549a77c0b5d252decaa2a0202Dake Gu 1453f0f3eb255bde49549a77c0b5d252decaa2a0202Dake Gu /** 1460d73d42df7cf4b325b8f49660e3326204915ce8fDake Gu * Gets position of currently selected row. 1470d73d42df7cf4b325b8f49660e3326204915ce8fDake Gu * @return Position of currently selected row. 1480d73d42df7cf4b325b8f49660e3326204915ce8fDake Gu */ 1492f1bd591e01fe93f605844d4a10cde7116315b7cDake Gu public int getSelectedPosition() { 1500d73d42df7cf4b325b8f49660e3326204915ce8fDake Gu return mSelectedPosition; 1510d73d42df7cf4b325b8f49660e3326204915ce8fDake Gu } 1520d73d42df7cf4b325b8f49660e3326204915ce8fDake Gu 1530d73d42df7cf4b325b8f49660e3326204915ce8fDake Gu /** 1543f0f3eb255bde49549a77c0b5d252decaa2a0202Dake Gu * Sets the selected row position. 1553f0f3eb255bde49549a77c0b5d252decaa2a0202Dake Gu */ 1563f0f3eb255bde49549a77c0b5d252decaa2a0202Dake Gu public void setSelectedPosition(int position, boolean smooth) { 15761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu mSelectedPosition = position; 15861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu if(mVerticalGridView != null && mVerticalGridView.getAdapter() != null) { 1593f0f3eb255bde49549a77c0b5d252decaa2a0202Dake Gu if (smooth) { 1603f0f3eb255bde49549a77c0b5d252decaa2a0202Dake Gu mVerticalGridView.setSelectedPositionSmooth(position); 1613f0f3eb255bde49549a77c0b5d252decaa2a0202Dake Gu } else { 1623f0f3eb255bde49549a77c0b5d252decaa2a0202Dake Gu mVerticalGridView.setSelectedPosition(position); 1633f0f3eb255bde49549a77c0b5d252decaa2a0202Dake Gu } 16461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 16561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 16661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 16761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu final VerticalGridView getVerticalGridView() { 16861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu return mVerticalGridView; 16961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 17061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 17142752c860a26deacca04ea9ebeb00ddb4d8ce2fcDake Gu void updateAdapter() { 172e71207666a1a915e5a5bdf7503bd936f4d87b48bDake Gu if (mBridgeAdapter != null) { 173e71207666a1a915e5a5bdf7503bd936f4d87b48bDake Gu // detach observer from ObjectAdapter 174e71207666a1a915e5a5bdf7503bd936f4d87b48bDake Gu mBridgeAdapter.clear(); 175e71207666a1a915e5a5bdf7503bd936f4d87b48bDake Gu mBridgeAdapter = null; 176e71207666a1a915e5a5bdf7503bd936f4d87b48bDake Gu } 17761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 17861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu if (mAdapter != null) { 17961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu // If presenter selector is null, adapter ps will be used 18061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu mBridgeAdapter = new ItemBridgeAdapter(mAdapter, mPresenterSelector); 18161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 18261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu if (mVerticalGridView != null) { 18361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu mVerticalGridView.setAdapter(mBridgeAdapter); 18461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu if (mBridgeAdapter != null && mSelectedPosition != -1) { 18561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu mVerticalGridView.setSelectedPosition(mSelectedPosition); 18661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 18761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 18861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 18961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 19042752c860a26deacca04ea9ebeb00ddb4d8ce2fcDake Gu Object getItem(Row row, int position) { 19161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu if (row instanceof ListRow) { 19261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu return ((ListRow) row).getAdapter().get(position); 19361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } else { 19461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu return null; 19561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 19661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 19761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 1982f5ebf3f6f7bb6a24856f389e369b247118ba119susnata public boolean onTransitionPrepare() { 19961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu if (mVerticalGridView != null) { 20061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu mVerticalGridView.setAnimateChildLayout(false); 201902e68c114f86e8002516ff3f0248b722b6c5711Dake Gu mVerticalGridView.setScrollEnabled(false); 202902e68c114f86e8002516ff3f0248b722b6c5711Dake Gu return true; 20361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 204902e68c114f86e8002516ff3f0248b722b6c5711Dake Gu mPendingTransitionPrepare = true; 205902e68c114f86e8002516ff3f0248b722b6c5711Dake Gu return false; 206902e68c114f86e8002516ff3f0248b722b6c5711Dake Gu } 207902e68c114f86e8002516ff3f0248b722b6c5711Dake Gu 2082f5ebf3f6f7bb6a24856f389e369b247118ba119susnata public void onTransitionStart() { 2094a4e0872bdf0548188e81740eb62085215e7f976Dake Gu if (mVerticalGridView != null) { 2104a4e0872bdf0548188e81740eb62085215e7f976Dake Gu mVerticalGridView.setPruneChild(false); 2114a4e0872bdf0548188e81740eb62085215e7f976Dake Gu mVerticalGridView.setLayoutFrozen(true); 2124a4e0872bdf0548188e81740eb62085215e7f976Dake Gu mVerticalGridView.setFocusSearchDisabled(true); 2134a4e0872bdf0548188e81740eb62085215e7f976Dake Gu } 21461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 21561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 2162f5ebf3f6f7bb6a24856f389e369b247118ba119susnata public void onTransitionEnd() { 2174a4e0872bdf0548188e81740eb62085215e7f976Dake Gu // be careful that fragment might be destroyed before header transition ends. 2184a4e0872bdf0548188e81740eb62085215e7f976Dake Gu if (mVerticalGridView != null) { 2194a4e0872bdf0548188e81740eb62085215e7f976Dake Gu mVerticalGridView.setLayoutFrozen(false); 2204a4e0872bdf0548188e81740eb62085215e7f976Dake Gu mVerticalGridView.setAnimateChildLayout(true); 2214a4e0872bdf0548188e81740eb62085215e7f976Dake Gu mVerticalGridView.setPruneChild(true); 2224a4e0872bdf0548188e81740eb62085215e7f976Dake Gu mVerticalGridView.setFocusSearchDisabled(false); 2234a4e0872bdf0548188e81740eb62085215e7f976Dake Gu mVerticalGridView.setScrollEnabled(true); 2244a4e0872bdf0548188e81740eb62085215e7f976Dake Gu } 22561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 22661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 2272f5ebf3f6f7bb6a24856f389e369b247118ba119susnata public void setAlignment(int windowAlignOffsetTop) { 22861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu if (mVerticalGridView != null) { 22961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu // align the top edge of item 23061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu mVerticalGridView.setItemAlignmentOffset(0); 23161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu mVerticalGridView.setItemAlignmentOffsetPercent( 23261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu VerticalGridView.ITEM_ALIGN_OFFSET_PERCENT_DISABLED); 23361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu 23461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu // align to a fixed position from top 2352f5ebf3f6f7bb6a24856f389e369b247118ba119susnata mVerticalGridView.setWindowAlignmentOffset(windowAlignOffsetTop); 23661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu mVerticalGridView.setWindowAlignmentOffsetPercent( 23761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu VerticalGridView.WINDOW_ALIGN_OFFSET_PERCENT_DISABLED); 23861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu mVerticalGridView.setWindowAlignment(VerticalGridView.WINDOW_ALIGN_NO_EDGE); 23961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 24061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu } 24161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu} 242