這是我的情況:Android:我如何在列表之外創建一個ListView標題?
我想名單看待「頭」和標籤部分作爲表頭,使「頭」和標籤不留固定在屏幕上,他們都與名單一起滾動。
我不能簡單地通過mListView.addHeaderView()
將標題和標籤添加爲列表的headerView,因爲按下時標籤將換出「列表」內容區域。其他選項卡的內容區域將包含其他列表,並且標題和選項卡也應與新列表一起滾動。
我很感激任何幫助。
這是我的情況:Android:我如何在列表之外創建一個ListView標題?
我想名單看待「頭」和標籤部分作爲表頭,使「頭」和標籤不留固定在屏幕上,他們都與名單一起滾動。
我不能簡單地通過mListView.addHeaderView()
將標題和標籤添加爲列表的headerView,因爲按下時標籤將換出「列表」內容區域。其他選項卡的內容區域將包含其他列表,並且標題和選項卡也應與新列表一起滾動。
我很感激任何幫助。
您可以重寫getViewType方法以精確確定您有多少行的listview。
看一看here。
把整個事情想象成ListView。您可以根據需要多次撥打addHeaderView()
,這樣您就可以擁有兩個標題視圖(「標題」和「選項卡|選項卡|選項卡」)。
回覆:
通過mListView.addHeaderView(),我不能簡單地添加標題和標籤作爲headerView的名單,因爲在按壓時選項卡將換出「清單」內容區域。
是的,你可以。
更新對列表數據的引用並致電mAdapter.notifyDataSetChanged()
。
我和你有同樣的需求,我發現這個項目實際上實現了你需要的東西,再加上一些更加刺眼的技巧。
https://github.com/kmshack/Android-ParallaxHeaderViewPager
神奇的是綁定發生在片段列表中的活性所定義的報頭中的滾動。選項卡的選擇與列表中的滾動位置之間也有基本的約束,以便在滑動時調整列表。 此代碼基於github回購,但更簡單(因此不太健壯),閱讀它只是爲了瞭解會發生什麼,然後在回購中閱讀源代碼。
public class MyFragment extends Fragment implements OnScrollListener {
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
((MyParentActivity) getActivity()).onScrollFragment(view, mTabPosition);
}
public void adjustScroll(int scrollHeight) {
if (scrollHeight == 0 && fragmentListView.getFirstVisiblePosition() >= 1) {
return;
}
officesListView.setSelectionFromTop(1, scrollHeight);
}
}
然後在活動中,你只需要這兩種具體方法
public class MyParentActivity implements ViewPager.OnPageChangeListener{
@Override
public void onPageSelected(int position)
myFragmentPagerAdapter.getFragmentAt(position)
.adjustScroll((int) (mHeader.getHeight() + ViewHelper.getTranslationY(mHeader)));
}
public void onScrollFragment(AbsListView view, int tabPosition) {
if (mViewPager.getCurrentItem() == tabPosition) {
int scrollY = getScrollY(view);
ViewHelper.setTranslationY(mHeader, Math.max(-scrollY, mMinHeaderTranslation));
}
}
}
這個代碼是好的可達8 API由於NineOldAndroids'視圖助手
http://i.imgur.com /gy8lV.gif – dcow
@dcow基本上什麼都沒有,我想通過 – James
來思考@詹姆斯是否設法實現了這一設計? – vfede