我无法显示ViewPager及其内容。我错过了什么?我在下面列出了两个版本的XML布局。版本#1包括ViewPager。版本#2排除了ViewPager,因此您可以看到在ViewPager中应该可以看到的内容。如何解决这个问题,我们将不胜感激。
编辑 - 现在包含适配器代码。值得注意的是,即使在Eclipse 中,ViewPager内容也不可见。即,我认为适配器与问题无关。
class MyPagerAdapter extends PagerAdapter {
public Object instantiateItem(View collection, int position) {
return guideContainer.getChildAt(position);
}
@Override
public int getCount() {
return timeSlotContainersHD.length;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
@Override public void destroyItem(View arg0, int position, Object arg2) {
}
}
版本#1包括ViewPager:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/GuideSideScrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/Green"
android:fillViewport="true" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top|center"
android:background="@color/Orange"
android:orientation="vertical" >
<TextView
android:id="@+id/MiddleView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight=".05"
android:gravity="center"
android:text="ViewPager Below Me"
android:background="@color/black"
android:textColor="@color/Orange" />
<android.support.v4.view.ViewPager
android:id="@+id/GuideViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1" >
<LinearLayout
android:id="@+id/TimeSlots1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@color/red"
android:orientation="vertical" >
<Button
android:id="@+id/FirstButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1"
android:textSize="12sp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button2"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/TimeSlots2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@color/Green"
android:orientation="vertical" >
<Button
android:id="@+id/FirstButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button3"
android:textSize="12sp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button4"
android:textSize="12sp" />
</LinearLayout>
</android.support.v4.view.ViewPager>
<TextView
android:id="@+id/TimeSlot1Program2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/Charcoal"
android:gravity="center"
android:text="ViewPager Above Me"
android:textColor="@color/Orange" />
</LinearLayout>
</ScrollView>
版本#2,不包括ViewPager:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top|center"
android:background="@color/Orange"
android:orientation="vertical" >
<TextView
android:id="@+id/MiddleView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight=".05"
android:gravity="center"
android:text="NO ViewPager Below Me"
android:background="@color/black"
android:textColor="@color/Orange" />
<LinearLayout
android:id="@+id/TimeSlots1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@color/red"
android:orientation="vertical" >
<Button
android:id="@+id/FirstButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1"
android:textSize="12sp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button2"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/TimeSlots2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@color/Green"
android:orientation="vertical" >
<Button
android:id="@+id/FirstButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button3"
android:textSize="12sp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button4"
android:textSize="12sp" />
</LinearLayout>
<TextView
android:id="@+id/TimeSlot1Program2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/Charcoal"
android:gravity="center"
android:text="NO ViewPager Above Me"
android:textColor="@color/Orange" />
</LinearLayout>
</ScrollView>
答案 0 :(得分:1)
花了一段时间,但我现在通过颠倒布局的层次结构来解决这个问题。我现在不是将ViewPager放在ScrollView中,而是以编程方式构建ScrollViews数组。每个ScrollView都位于各个ViewPager页面的顶层。现在一切都很好。
答案 1 :(得分:0)
现在你正试图在<android.support.v4.view.ViewPager>
元素中定义ViewPager的布局,如果我做对了。
不要那样做。而是为您将使用的片段定义单独的布局XML。然后以编程方式将其加载到Fragments中。
您可以在此处查看如何执行此操作的示例: http://www.javacodegeeks.com/2013/04/android-tutorial-using-the-viewpager.html
尝试:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top|center"
android:background="@color/Orange"
android:orientation="vertical" >
<TextView
android:id="@+id/MiddleView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight=".05"
android:gravity="center"
android:text="ViewPager Below Me"
android:background="@color/black"
android:textColor="@color/Orange" />
<android.support.v4.view.ViewPager
android:id="@+id/GuideViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1" />
<TextView
android:id="@+id/TimeSlot1Program2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/Charcoal"
android:gravity="center"
android:text="ViewPager Above Me"
android:textColor="@color/Orange" />
</LinearLayout>
看看它显示了什么。