मेरे पास एक 'पृष्ठ' है, जिसमें इस पर कई घटक हैं, और जो सामग्री डिवाइस की ऊंचाई से अधिक लंबी है। ठीक है, बस लेआउट के सभी (पूरे पृष्ठ) के अंदर एक ScrollView
, कोई समस्या नहीं है।
घटकों में से एक एक है ViewPager
। यह सही ढंग से प्रस्तुत करता है, लेकिन एक स्वाइप / फ़्लिंग की प्रतिक्रिया सही ढंग से प्रदर्शन नहीं कर रही है, यह चिड़चिड़ा है और हमेशा काम नहीं करता है। ऐसा लगता है कि यह 'भ्रमित' हो रहा है ScrollView
, इसलिए केवल 100% काम करता है जब आप एक सटीक क्षैतिज रेखा में भागते हैं।
यदि मैं हटाता हूं ScrollView
, तो ViewPager पूरी तरह से प्रतिक्रिया करता है।
मैंने आसपास खोज की है और इसे ज्ञात दोष के रूप में नहीं पाया है। क्या किसी और को भी इसका अनुभव हुआ है?
- प्लेटफार्म संस्करण: 1.6
- संगतता पुस्तकालय v4।
- डिवाइस: एचटीसी इनक्रेडिबल एस
नीचे आप के साथ परीक्षण करने के लिए कुछ उदाहरण कोड ScrollView
हैं, इसे सही ढंग से काम करने के लिए देखें।
गतिविधि:
package com.ss.activities;
import com.ss.R;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.TextView;
public class PagerInsideScollViewActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ViewPager vp = (ViewPager) findViewById(R.id.viewpager);
vp.setAdapter(new MyPagerAdapter(this));
}
}
class MyPagerAdapter extends PagerAdapter {
private Context ctx;
public MyPagerAdapter(Context context) {
ctx = context;
}
@Override
public int getCount() {
return 2;
}
@Override
public Object instantiateItem(View collection, int position) {
TextView tv = new TextView(ctx);
tv.setTextSize(50);
tv.setTextColor(Color.WHITE);
tv.setText("SMILE DUDE, SMILE DUDE, SMILE DUDE, SMILE DUDE, SMILE DUDE, " +
"SMILE DUDE, SMILE DUDE, SMILE DUDE, SMILE DUDE, SMILE DUDE, " +
"SMILE DUDE, SMILE DUDE, SMILE DUDE, SMILE DUDE, SMILE DUDE, " +
"SMILE DUDE, SMILE DUDE, SMILE DUDE");
((ViewPager) collection).addView(tv);
return tv;
}
@Override
public void destroyItem(View collection, int position, Object view) {
((ViewPager) collection).removeView((View) view);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
}
@Override
public void startUpdate(View arg0) {
}
@Override
public void finishUpdate(View arg0) {
}
}
लेआउट:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="300dp" />
</LinearLayout>
</ScrollView>