1. 程式人生 > >Viewpager中巢狀ListView

Viewpager中巢狀ListView

原文地址:http://spacetech.dk/android-viewpager-with-listview-pages.html

MainActivity

package com.example.koreancoursetest;

import java.util.Vector;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

	/** Called when the activity is first created. */

	private Context mContext;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		mContext = this;
		setContentView(R.layout.activity_main);
		ListView listview1 = new ListView(mContext);
		ListView listview2 = new ListView(mContext);
		ListView listview3 = new ListView(mContext);

		Vector<View> pages = new Vector<View>();

		pages.add(listview1);
		pages.add(listview2);
		pages.add(listview3);

		ViewPager vp = (ViewPager) findViewById(R.id.viewpager);
		vp.setAdapter(new CustomPagerAdapter(mContext, pages));

		listview1.setAdapter(new ArrayAdapter<String>(mContext,
				android.R.layout.simple_list_item_1, new String[] { "A1", "B1",
						"C1", "D1" }));
		listview2.setAdapter(new ArrayAdapter<String>(mContext,
				android.R.layout.simple_list_item_1, new String[] { "A2", "B2",
						"C2", "D2" }));
		listview3.setAdapter(new ArrayAdapter<String>(mContext,
				android.R.layout.simple_list_item_1, new String[] { "A3", "B3",
						"C3", "D3" }));

	}
}

CustomPagerAdapter
/**
 * by HLQ 2016-4-11 下午1:48:42
 */
package com.example.koreancoursetest;

import java.util.Vector;

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;

/**
 * @author HLQ
 * 
 */
public class CustomPagerAdapter extends PagerAdapter {

	private Context mContext;
	private Vector<View> pages;

	public CustomPagerAdapter(Context context, Vector<View> pages) {
		this.mContext = context;
		this.pages = pages;
	}

	@Override
	public Object instantiateItem(ViewGroup container, int position) {
		View page = pages.get(position);
		container.addView(page);
		return page;
	}

	@Override
	public int getCount() {
		return pages.size();
	}

	@Override
	public boolean isViewFromObject(View view, Object object) {
		return view.equals(object);
	}

	@Override
	public void destroyItem(ViewGroup container, int position, Object object) {
		container.removeView((View) object);
	}

}

activity_main
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
    />

</LinearLayout>

相關推薦

解決ScrollViewviewPagerlistView滑動事件衝突問題(水平方向)

我們在開發中經常會碰到view滑動衝突的情況。滑動衝突的解決辦法就兩種:1.外部攔截法:是指在點選事件先經過父容器的攔截處理,如果父容器需要處理此事件就進行攔截,如果不需要此事件就不攔截,這樣就可以解決滑動衝突的問題,外部攔截法需要重寫父容器的onInterceptTouch

ViewpagerListView

原文地址:http://spacetech.dk/android-viewpager-with-listview-pages.html MainActivity package com.example.koreancoursetest; import java.util.

NestedScrollViewListview後只顯示一個item

出現這種情況的原因是Listview能識別NestedScrollView的高度。 解決辦法是新建一個MyListView繼承ListView然後重寫其中的onMeasure方法 具體實現: public class MyListView extends ListView {

ScrollViewListView的技巧總結

前幾天因為專案的需要,要在一個ListView中放入另一個ListView,也即在一個ListView的每個ListItem中放入另外一個ListView。但剛開始的時候,會發現放入的小ListView會顯示不完全,它的高度始終有問題。上網查了下,發現別人也有遇到這樣的問

Android scrollviewlistview實現listview的下拉重新整理上拉載入更多

我們都知道在Android中scrollview和listview都能滑動,如果scrollview巢狀listview會出現一些問題,比如listview不能正常顯示item...但是在一些專案中,一些頁面內容比較多,需要在外面放一個scrollview,裡面還會巢狀li

在ScrollViewListView時,需要根據內容來設定listView的高度

動態設定ListView的高度 public void setListViewHeightBasedOnChildren(ListView mListView) { ListAdapter listAdapter = mListView.getAdapter();

Android開發之ScrollViewListView的解決方案

import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.widget.BaseAdapter;

Android學習 之 問題&解答 ScrollViewListView時顯示不全的簡便解決方案

利用下面這個Utility 類的靜態方法setListViewHeightBasedOnChildren()即可實現: 在listview.setAdapter()之後呼叫Utility.setListViewHeightBasedOnChilren(listview)就

Android-ListView(ListView)控制元件時item的點選事件不起作用的問題

解決:1、在主listview佈局檔案中的listview中新增屬性 android:focusable="false"              2、在子listview中最頂上的佈局檔案新增屬性

NestedScrollView,ScrollViewlistView 或者RecyclerView會自動跳到頂部,中部,底部的問題。

在開發中,我們經常會遇到這樣的佈局,就是NestedScrollView,ScrollView中巢狀listView 或者RecyclerView,但是有時候會發現會出現自動跳轉到listview或者recycleview的頂部或者頂部的問題,開始在網上查詢,也有別人遇到這個

ViewPageractivity頁面

做專案使用ViewPager顯示頁面遇到一個問題,就是當一個activity對應的xml頁面使用了ViewPager控制元件,並且控制元件中的子頁面也是activity頁面時,子頁面的事件如果使用匿名內部類方式,會直接執行不到,如果使用onClick方式,這時候會提示在父

千萬不要在ScrollViewListView

為什麼不要在ScrollView中巢狀ListView 網上關於ScrollView巢狀ListView的文章很多。確實ListView可以通過重寫onMeasure方法將ListView的高度重新設定實現功能,但是真的得不償失。如果真的有需求請用LinearLayout代

listviewviewpager的實現總結

最近在做一個專案需要在listView中巢狀viewPager作為第一項,效果如下: 上面的佈局就是一個listView,在實現過程中遇到了以下問題: 1.listView中第一項為viewPager,其他項為單獨包含兩種資料型別,導致listView佈局混亂。 2.v

Android:ScrollViewViewPagerListView示例

引言: 我們在實際開發一個款Android App時,經常會遇到Scrollview和ViewPager和ListView同時使用的場景,如下圖所示的需求: 下面我們通過程式碼來模擬一下這種場景: 佈局檔案: <?xml version="

android ScrollViewGridView,ListView只顯示一行的解決辦法

注:本文是由網上大神分享的解決方案彙集而成 方法一: 重寫ListView、GridView: 重寫ListView: public class MyListView extends ListView { public MyListView(Context contex

ListViewViewFlow,ViewFlow滑動有些卡頓的問題~

最近做類似於網易新聞頭條那種圖片Banner,實現方法是:在ListView中巢狀ViewFlow,但是ViewFlow的滑動總是不是那麼順暢,覺得應該是觸屏事件攔截衝突的問題吧,在網上查閱了一下我的解決方法如下: 在ViewFlow中宣告mListView,然後將父ListView傳入到ViewFlow,

scrollviewviewpager不顯示

activityScdetailsBottomVp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {              @Override            publicvoid onPageS

我的第一篇部落格--ScrollView自定義ListView顯示不全的解決方案

之前在開發過程中遇到過ScrollView巢狀ListView的開發需求,如果listview的item高度固定的話,可以通過繼承listview進行重寫onMeasure()方法可以完美解決滑動衝突等問題,程式碼如下: public class ChildListVie

fragmentviewpager,vierpager有多個fragment,不顯示 ...

現在好多應用流行一種佈局。底部幾個工具欄選項,上面也有類似tab的選項。 底部用RadioGroup控制fragment的切換。以上有五個fragment。 第一個fragment,代表著首頁。首頁又是一個類似tab的fragment,使用viewpager切換著兩

AndroidRecyclerViewRecyclerView或ListView

效果圖: RecyclerView巢狀RecyclerView RecyclerView巢狀ListView 原理 RecyclerView巢狀RecyclerView的條目,專案中可能會經常有這樣的需求,但是我們將子條目設定為RecyclerView之後,卻顯