Ich habe einen PagerSlidingTabStrip mit Viewpager, der drei Fragmente enthält. Eines der Fragmente hat ListView. Wenn ich auf den ListView-Elementen nach links oder rechts wische, ändert der viewpager die Seiten nicht. Wenn ich über das ListView wische, funktioniert das Scrollen gut. Wenn ich auf die anderen Fragmente wische, die nur TextView enthalten, funktioniert der Swipe. Bitte schlagen Sie vor, was ich falsch machen könnte?PagerSlidingTabStrip ViewPager nicht scrollen
Dieses Problem kann reproduziert werden, indem einfach das folgende Fragment und der Adapter im Beispielcode des PagerSlidingTabStrip hinzugefügt werden.
@SuppressLint("ValidFragment")
public class HomeFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = null;
try {
view = inflater.inflate(R.layout.home, container, false);
ListView listview = (ListView) view.findViewById(R.id.homegrid);
listview.setAdapter(new HomeAdapter(inflater));
}
catch (Exception e)
{
e.printStackTrace();
}
return view;
}
}
public class HomeAdapter extends BaseAdapter {
private Context mContext;
LayoutInflater inflater;
public HomeAdapter(LayoutInflater inflater)
{
this.inflater = inflater;
}
public int getCount() {
return 5;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) { // if it's not recycled, initialize some attributes
convertView = inflater.inflate(R.layout.home_grid_item, parent, false);
}
TextView text1 = (TextView)convertView.findViewById(R.id.title);
text1.setText("FAVOURITE "+position);
return convertView;
}
}
home.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal|center_vertical"
android:gravity="center_horizontal|center_vertical"
android:orientation="vertical"
android:background="#ffe0e0e0"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:clipToPadding="false"
>
<ListView
android:id="@+id/homegrid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal|center_vertical"
android:layout_gravity="center_horizontal|center_vertical"
>
</ListView>
</LinearLayout>
home_grid_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center_vertical"
android:gravity="center_horizontal|center_vertical"
android:background="#000000"
>
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical|center_horizontal"
android:paddingRight="0dp"
android:paddingLeft="0dp"
android:text="FAVOUR"
android:textSize="9pt"
android:textStyle="bold"
android:textAllCaps="true"
android:textColor="#FFFFFF"
android:singleLine="true"
android:maxLines="1" />
</LinearLayout>
Es scheint, dass die 'ListView' das' onTouch' Ereignis außer Kraft setzt. Code der Listenansicht hinzufügen plz –
Wenn Sie den 'PagerSlidingTabStrip' nicht hinzufügen, was wird dann passieren? Ein 'ListView' sollte sowohl mit' ViewPager' als auch mit dem 'PagerSlidingTabStrip' perfekt funktionieren, also wird etwas durcheinander gebracht. Sie haben den Beispielcode von Google nicht geändert oder verbessert? Auch dein 'Fragment' ist fehlerhaft - es hat wahrscheinlich nichts mit diesem Problem zu tun, aber du solltest immer einen öffentlichen Konstruktor für das 'Fragment' haben. – Darwind
Und noch etwas ... der 'PagerSlidingTabStrip' ist keine Standard-Android-Komponente - es ist eine 3rd-Party-Bibliothek - warum versuchst du es nicht mit dem' TabLayout' aus der Design-Bibliothek? Sehen Sie dieses Tutorial, wie es funktioniert: http://www.androidhive.info/2015/09/android-material-design-working-with-tabs/ – Darwind