我正在尝试在Android中设计SwipeMenu Listview。但我在向听众提供适配器的父相对布局时遇到问题。因此,SwipeMenu不会来自SwipeMenuListView,因此不会调用onTouchEvent。
我按照这个tutorial来设计SwipeMenuListView。
MyCode:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = View.inflate(getApplicationContext(),
R.layout.item_list_app, null);
new ViewHolder(convertView);
}
final ViewHolder holder = (ViewHolder) convertView.getTag();
ApplicationInfo item = getItem(position);
holder.rlt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Click "+position, Toast.LENGTH_SHORT).show();
}
});
holder.iv_icon.setImageDrawable(item.loadIcon(getPackageManager()));
holder.tv_name.setText(item.loadLabel(getPackageManager()));
return convertView;
}
XML:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rlt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp" >
<ImageView
android:id="@+id/iv_icon"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/iv_icon"
android:text="name"
android:textColor="@android:color/black"
android:textSize="18sp" /> </RelativeLayout>
在我的getView中,如果我将删除onclick监听器,那么swipemenu正在工作,但如果有一个监听器,那么touchevent就无法正常工作。
以上是我的问题的上述代码,请给我一些解决方案。
答案 0 :(得分:1)
只需将android:descendantFocusability="blocksDescendants"
添加到您的相对布局中即可。这应该可行。喜欢:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rlt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp"
android:descendantFocusability="blocksDescendants" >
<ImageView
android:id="@+id/iv_icon"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/iv_icon"
android:text="name"
android:textColor="@android:color/black"
android:textSize="18sp" />
</RelativeLayout>
答案 1 :(得分:0)
我创建了一个具有许多功能的库:
您可以从Github链接https://github.com/AbdulRehmanNazar/Android-PullToRefresh-with-SwipeMenu-ListView-and-Section-Indexer找到源代码 享受编码