使用View Pager问题的图像滑块

时间:2015-10-07 16:43:16

标签: android android-viewpager

我的活动包含 listView 。 listView的每个项目都包含一组可滑动的图像(我使用 ViewPager 尝试使用该图像失败)。

我的问题是这样的:当我尝试使用视图寻呼机实现一个简单的图像滑块(即Activity包含一个ViewPager,并且View Pager的适配器提供图像)时,输出是预期的,但是如果我尝试做我在前一段中提到的内容(即,Activity包含一个listView,listView的每个项目都是一个ViewPager,它显示一组可滑动的图像),我得到一个空白输出。请帮帮我!我在下面发布了一些代码:

MainActivity.java

  <FrameLayout   xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.temp.customer.MainActivity">

<ListView
    android:id="@+id/stylistDisplay"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="@android:color/transparent"
    android:background="@color/backGround"
    android:padding="13.3dp"
    android:clickable="true"
    android:dividerHeight="5dp" />
</FrameLayout>

activity_main.xml中

 <RelativeLayout xmlns:android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   tools:context=".MainActivity" >

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

</RelativeLayout>

stylist_photos_view_pager

public class PhotosAdapter extends PagerAdapter {
private Context context;
private int[] GalImages = new int[] {
        R.drawable.one,
        R.drawable.two,
        R.drawable.three
};
public PhotosAdapter(Context context) {
    this.context = context;
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
    LayoutInflater inflater = ((Activity)context).getLayoutInflater();
    View viewItem = inflater.inflate(R.layout.stylist_individual_details, container, false);
    ImageView imageView = (ImageView) viewItem.findViewById(R.id.iv1);
    imageView.setImageResource(GalImages[position]);
    TextView textView1 = (TextView) viewItem.findViewById(R.id.tv1);
    textView1.setText("hello world");
    ((ViewPager)container).addView(viewItem);

    return viewItem;
}

@Override
public int getCount() {
    return 3;
}

@Override
public boolean isViewFromObject(View view, Object object) {
    boolean temp = view == ((LinearLayout) object);
    return temp;
}

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

PhotosAdapter.java

Non-invocable member 'Vector2' cannot be used like a method

}

2 个答案:

答案 0 :(得分:0)

我经历过类似的问题,不得不说使用ViewPager作为listItem是一个坏主意,因为ViewPager应该主要用于片段。

我猜你的功能应该与主垂直上的一些水平图片类似。您可以考虑使用水平滚动视图,这有点痛苦,但仍然更加现实。您最终可能还会管理自己的滚动行为,这可能已经被某些库实现了。

但我可能错了! 该主题有类似的问题:

trac

答案 1 :(得分:0)

在阅读了一段时间后,我尝试明确设置viewPager及其父级的高度。这对我有用。

<?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="200dip"
    android:orientation="vertical" >

   <android.support.v4.view.ViewPager
      android:id="@+id/pager"
      android:layout_width="match_parent"
      android:layout_height="200dip" >
   </android.support.v4.view.ViewPager>
 </LinearLayout>

我不知道是否有更好的解决方案,但如果你有更好的解决方案,请发表评论!