将属性设置为viewpager的子级

时间:2013-07-15 13:36:11

标签: java android android-viewpager

我已经扩展了ViewPager以解决它产生的一些错误:

public class ChildViewPager extends ViewPager {
//work out code
}

现在我正在尝试设置我的寻呼机视图

使用普通的ViewPager,它可以正常工作:

    mViewPager = (ViewPager)findViewById(R.id.pager);

这在布局中:

<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="30dp" />   

但如果我需要投射到ViewPager的子节点, 我当然不能这样做:

    mViewPager = (ChildViewPager)findViewById(R.id.pager);

非常感谢!

2 个答案:

答案 0 :(得分:1)

如果我没有被误解,你应该改变

<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="30dp" />   

<path.to.ChildViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="30dp" />   

否则您将获得ClassCastException

public class ChildViewPager extends ViewPager {

      public ChildViewPager(Context context, AttributeSet attrs) {
          super(context, attrs);
      }

//work out code
}

答案 1 :(得分:1)

在布局文件中,而不是 android.support.v4.view.ViewPager ,添加ChildViewPager类的完全限定路径。

示例:

<com.taniasApp.ChildViewPager
 android:id="@+id/pager"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:padding="30dp" />

并在java Activity类中:

 ChildViewPager mViewPager = (ChildViewPager)findViewById(R.id.pager);