Üç parçayı tutan bir görüntüleyici ile bir PagerSlidingTabStrip var. Fragmanlardan biri ListView'e sahip, ListView öğelerinde sola veya sağa kaydırdığımda, viewpager'ın sayfaları değiştirmemesi, ListView kaydırma işleminin dışına doğru kaydırdığımda iyi çalışıyor. Sadece TextView içeren diğer parçalarda kaydırdığımda tokatlamak çalışıyor. Lütfen, Ne yapıyorum yanlış yapabilirim?PagerSlidingTabStrip ViewPager kaydırma yapmıyor
Bu sorun, yalnızca PagerSlidingTabStrip'in örnek kodunun kendisinde aşağıdaki parçayı ve bağdaştırıcıyı ekleyerek çoğaltılabilir.
@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 android ile TextView içeren
<?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>
O 'ListView'' onTouch' olay geçersiz kılar gibi görünüyor. Listview plz kod ekleme –
Eğer "PagerSlidingTabStrip" eklemezseniz, o zaman ne olacak? A "ListView", hem "ViewPager" hem de "PagerSlidingTabStrip" ile mükemmel bir şekilde çalışmalıdır, bu yüzden bir şey bozuluyor. Google’daki örnek kodları değiştirmediniz veya geliştirmediniz mi? Ayrıca, "Fragman" hatalıdır - muhtemelen bu konuyla ilgisi yoktur, ancak her zaman için Fragman için bir kamu kurucunuz olmalıdır. – Darwind
Ve bir şey daha ... "PagerSlidingTabStrip" varsayılan bir Android bileşeni değil - bir 3. parti kitaplığı - neden Tasarım kitaplığından 'TabLayout' ile denemiyorsunuz? Nasıl çalıştığına dair bu eğitime bakın: http://www.androidhive.info/2015/09/android-material-design-working-with-tabs/ – Darwind