【问题标题】:Inflate ViewPagers with different ids使用不同的 id 膨胀 ViewPager
【发布时间】:2017-07-19 10:27:23
【问题描述】:

我想动态地将 ViewPagers 添加到 Fragment。例如我创建了 xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/tvHeader"
        android:textColor="@color/black"
        android:textSize="18sp"
        android:layout_margin="15dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

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

</LinearLayout>

并用它来增加视图。但 ViewPagers 显示不正确。看起来与 ViewPagers 的相同 ID 相关的问题。当我删除 android:id="@+id/vpUsers" 时出现错误:

 java.lang.IllegalStateException: ViewPager with adapter com.raybytes.SMSAddict.adapters.UserSectionAdapter$MyFragmentPagerAdapter@11a219d0 requires a view id

如果我以编程方式创建 ViewPagers 也会出现同样的问题,因为需要 id 但手动设置 id 很危险。

如何膨胀或以编程方式创建几个具有不同 ID 的 ViewPager? (ViewPager 的数量未知)

【问题讨论】:

    标签: android android-layout android-viewpager layout-inflater android-inflate


    【解决方案1】:

    也许这里描述的解决方案适用于您的情况: Put a viewpager in a popup window 基本上,您必须将其添加到您的资源中:

    <item name="viewpager" type="id" />
    

    然后打电话

    viewPager.setId(R.id.viewpager);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      • 1970-01-01
      • 1970-01-01
      • 2017-12-18
      相关资源
      最近更新 更多