Pull-to-Refresh Listview拉动空视图

时间:2015-04-02 10:05:19

标签: android listview android-fragments pull-to-refresh

我正在使用Chris Bane"被弃用" Pull-to-Refresh库。一切都很好。我能做什么:

1。)当列表视图中有内容时,我可以进行刷新。我可以看到进度对话旋转和一切。

2。)首次加载应用程序时,如果没有数据/空列表视图,我可以显示空文本视图,我可以使用旋转进度条显示相同的拉动刷新。

但是我第二次进入这个列表视图(片段中的内容),空数据没有任何反应。无法进行刷新 - 进度对话框无法显示,甚至无法拉出布局。它只显示一个空文本(你不能再拉)。

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/ptr_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
>

<com.handmark.pulltorefresh.library.PullToRefreshListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:cacheColorHint="#00000000"
    android:divider="#19000000"
    android:dividerHeight="1dp"
    android:fadingEdge="none"
    android:fastScrollEnabled="false"
    android:footerDividersEnabled="false"
    android:headerDividersEnabled="false"
    android:descendantFocusability="blocksDescendants"
    app:ptrDrawable="@drawable/ic_logo_blue"
    app:ptrRotateDrawableWhilePulling="false"
    app:ptrScrollingWhileRefreshingEnabled="false"
    app:ptrHeaderBackground="#EEEEEE"
    app:ptrRefreshableViewBackground="#F7F7F7"
    android:smoothScrollbar="true" />

<TextView
    android:id="@+id/emptyView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"
    android:text="Empty list"
    android:gravity="center"
    android:visibility="gone"/>

我也尝试用LinearLayout替换RelativeLayout,但问题仍然存在。

其他信息

不确定这些是否相关:

  • 包含列表视图的片段位于SlidingTab
  • 对pull to refresh listview的listview引用的高度为0.

这里是Fragment's onCreateView()

的代码
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    result = (RelativeLayout)inflater.inflate(R.layout.listview, container, false);
    listView = (PullToRefreshListView)result.findViewById(R.id.directoryList);
    emptyTextView = (TextView)result.findViewById(R.id.emptyEventsView);
    adapter =  new ListViewAdapter(getActivity(), R.layout.listview_item, someList);
    listView.setAdapter(adapter);
    listView.setEmptyView(emptyTextView);
    listView.setOnItemClickListener(this);
    listView.setOnRefreshListener(this);
    listView.post(new Runnable() {
        @Override
        public void run() {
            listView.setRefreshing();
        }
    });
    return result;
}

对不起,很长的帖子。任何帮助,将不胜感激。

0 个答案:

没有答案