在 ListFragment 中使用自定义 ListView
Posted
技术标签:
【中文标题】在 ListFragment 中使用自定义 ListView【英文标题】:Using a custom ListView in a ListFragment 【发布时间】:2015-02-18 02:32:53 【问题描述】:我正在尝试在 ListFragment 中从 DevBytes 实现 this dynamicListView。
来源:http://developer.android.com/shareables/devbytes/ListViewDraggingAnimation.zip
我通过创建一个简单的布局来做到这一点
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:layout_
android:layout_ >
<com.example.android.listviewdragginganimation.DynamicListView
android:id="@android:id/list"
android:layout_
android:layout_ />
</RelativeLayout>
并在我的 ListFragment 中扩展此布局
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
inflater.inflate(R.layout.simple_list_layout, container);
return super.onCreateView(inflater, container, savedInstanceState);
DynamicListView 似乎已正确初始化(它的 init(Context) 函数已运行)。但它只是像普通的 ListView 一样工作。即项目全部显示,我可以上下滚动,但 DynamicListViews onItemLongClickListener 永远不会被调用。
需要做些什么吗?
【问题讨论】:
你需要在你的fragment
中覆盖onItemLongClickListener
【参考方案1】:
您正在夸大自定义布局,但返回默认布局。将代码更改为
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
return inflater.inflate(R.layout.simple_list_layout, container);
之后您可以像往常一样拨打getListView().setOnLongClickListener(myClickListener)
。
编辑:在布局中添加第二个视图,ID 为 android:id="@id/android:empty"
,以获得额外的空状态。
【讨论】:
以上是关于在 ListFragment 中使用自定义 ListView的主要内容,如果未能解决你的问题,请参考以下文章
如何设置 ListFragment 自定义布局的 Divider(为 null)
带有自定义 CursorAdapter 的 Android ListFragment 不显示数据
如何使用 SQLite 中的数据实现自定义 ArrayAdapter