我正在尝试使用SlidingPaneLayout。左视图是ListFragment,右视图是详细视图。布局正确显示,我可以滑动它。但是如果详细视图位于列表前面并单击它,则后台列表会收到单击。
我的布局如下:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.SlidingPaneLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/sliding_pane_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<fragment android:name="net.name.multiremote.RemoteListFragement"
android:id="@+id/fragment_remote_list"
android:layout_width="580dp"
android:layout_height="match_parent"
android:layout_gravity="left" />
<fragment
android:id="@+id/fragment_remote"
android:name="net.name.multiremote.RemoteFragment"
android:layout_width="850dp"
android:layout_height="match_parent"
android:layout_weight="1" />
</android.support.v4.widget.SlidingPaneLayout>
我使用此代码在ListFragment
中设置click侦听器@Override
public void onListItemClick(ListView list, View view, int position, long id) {
iItemClickListener.onListFragmentItemClick(view, position);
}
我该如何解决这个问题?
答案 0 :(得分:8)
只需将android:clickable="true"
添加到Fragment
中的第二个FrameLayout
或SlidingPaneLayout
。
答案 1 :(得分:2)
Locutus是对的。 无论顶部的片段是什么,添加属性
android:clickable="true"
所以它不会将click事件传递给下面的片段。
感谢大家节省时间。 这是我的代码。我使用了重写的布局,但这也适用于常规的滑动窗格布局。 看看第二个片段,我添加了可点击的真实属性。
<com.ironone.streaming.application.MySlidingPaneLayout
android:id="@+id/pane"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<FrameLayout
android:id="@+id/pane1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<FrameLayout
android:id="@+id/pane2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true" />
</com.ironone.streaming.application.MySlidingPaneLayout>
答案 2 :(得分:0)
我有同样的问题,我认为它是Fragment和ListFragment的“v4”版本和SlidingPanelLayout的组合...... 如果您将导入从“v4”更改为导入普通“android.app.ListFragment;”和“import android.app.Fragment;”一切正常。
对不起我的英文;)