单击SlidingPaneLayout上的事件

时间:2013-08-12 07:41:05

标签: android android-layout slidingpanelayout

我正在尝试使用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);
}

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:8)

只需将android:clickable="true"添加到Fragment中的第二个FrameLayoutSlidingPaneLayout

答案 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;”一切正常。

对不起我的英文;)