【问题标题】:Android listview inside viewpager not swipingviewpager内的Android listview不刷卡
【发布时间】:2015-04-06 10:40:32
【问题描述】:

我在 viewpager 中有一个列表视图。我在列表视图上设置了一个空视图。如果此列表视图开始为空,则当我向其中添加内容时,列表视图上的左右滑动不会在选项卡之间切换。如果当我在其上设置适配器时列表视图以某些内容(非空)开头,那么我可以滑动。如果我删除 listview 上的 setEmptyView,无论是否以数据开头,它都可以正常工作。

如何设置一个空视图并仍然让列表视图在选项卡之间滑动?

这就是我设置空视图的方式:

mListview.setEmptyView(findViewById(R.id.empty_view));

空视图是线性布局中列表视图正下方的文本视图

空视图xml: empty_view.xml:

<?xml version="1.0" encoding="utf-8"?>
<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:id="@+id/empty_list"
    android:textColor="@color/lighter_gray"        
    android:layout_gravity="center"
    android:gravity="center"
    android:singleLine="true"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="@string/no_item"
    android:textStyle="italic">  

</TextView>

【问题讨论】:

  • 在我看来,你的空视图正在消耗触摸
  • 实际上当列表视图为空并显示空视图时,滑动有效。只有当我向列表视图添加一个项目时,滑动停止工作

标签: android listview android-fragments android-listview


【解决方案1】:

我建议从当前布局文件中删除您的空视图,并将其移动到自己的专用布局文件中。然后,当您想将其用作空视图时,在您的类中扩展此新布局。最终结果将是这样的(未编译,从内存中编码):

final View v = LayoutInflater.from(context).inflate(R.layout.empty_view, null); 
mListview.setEmptyView(v);

或许

final View v = LayoutInflater.from(context).inflate(R.layout.empty_view, mListview, false); 
mListview.setEmptyView(v);

【讨论】:

  • 当我这样做时,当列表视图由于某种原因为空时,根本不会显示空视图
  • 两种变体?
  • 嗯,我觉得还可以。我暂时没有想法,但我会把答案留给其他人参考。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多