显示软键盘后,Viewpager无法使用

时间:2019-08-28 22:16:15

标签: android kotlin android-viewpager android-linearlayout android-softkeyboard

我有一个带有以下适配器的ViewPager(页面是LinearLayouts):

MyPagerAdapter.kt

class MyPagerAdapter(private val activity: AppCompatActivity) : PagerAdapter()
{
    private val pages = arrayOf(/* ... */)

    override fun instantiateItem(container: ViewGroup, position: Int): Any
    {
        val inflater = LayoutInflater.from(activity)
        val view = inflater.inflate(R.layout.my_layout, container, false) as LinearLayout
        // add other views to `view`
        return view
    }

    override fun destroyItem(container: ViewGroup, position: Int, `object`: Any)
    {
        container.removeView(`object` as View)
    }

    override fun getPageTitle(position: Int): CharSequence?
    {
        return pages[position]
    }

    override fun isViewFromObject(view: View, `object`: Any): Boolean
    {
        return `object` == view
    }

    override fun getCount(): Int
    {
        return pages.size
    }
}

显示软键盘后(例如,从另一个对话框中的EditText显示),ViewPager(或LinearLayout)不起作用:

  • 新页面将显示为空白,不会显示任何内容
  • 如果我从LinearLayout(removeViewAt)中删除视图,该视图将消失,但其空间仍然存在
  • 如果我将视图添加到LinearLayout(addView),则视图不会在底部添加或溢出,并且不可见
  • 如果我设置了ViewPager的适配器,则每个页面将为空
  • 页面捕捉不起作用
每次调用

instantiateItem并返回视图

但是它确实可以在分屏模式下工作

我尝试了使用除LinearLayout以外的其他片段和片段,它适用于某些视图,不适用于其他视图。这让我发疯了

0 个答案:

没有答案