0

时,onclick未检测到,我当前为relative layout显示在listview中。原来,当我点击RelativeLayout时,总是被list view中的点击事件发现。ListView上的RelativeLayout,当RealtiveLayout显示为

我想在显示布局时检测手势,但是当我点击时,从下面的listview中选择该项目。

任何人都知道这个问题的解决方案?

<TabHost 
    android:id="@android:id/tabhost" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@+id/start_tabs_topbar" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     android:padding="0dp" > 

     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:padding="0dp" /> 

     <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="-4dp" 
      android:layout_weight="0" /> 
    </LinearLayout> 
</TabHost> 

    <RelativeLayout 
     android:id="@+id/playertab1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/back_artista" 
     android:gravity="center_vertical|left" 
     android:paddingLeft="15dp" > 

     <LinearLayout 
      android:id="@+id/music_info" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="" 
      android:orientation="horizontal" > 

      <ImageView 
       android:id="@+id/artist_image" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="9dp" 
       android:layout_marginTop="4dp" 
       android:src="@drawable/placeholder" /> 

      <LinearLayout 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="top" 
       android:orientation="vertical" > 

       <TextView 
        android:id="@+id/playlist_name" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="playlist_name" 
        android:textColor="#3BBEF9" 
        android:textSize="15dp" 
        android:textStyle="bold" /> 

       <TextView 
        android:id="@+id/artist_album" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="artist_album" 
        android:textColor="#EEEEEE" 
        android:textSize="11dp" /> 

       <TextView 
        android:id="@+id/artist_name" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="artist_album" 
        android:textColor="#EEEEEE" 
        android:textSize="11dp" /> 

       <TextView 
        android:id="@+id/artist_song" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="artist_song" 
        android:textColor="#EEEEEE" 
        android:textSize="11dp" /> 
      </LinearLayout> 
     </LinearLayout> 
    </RelativeLayout> 

ListView控件作为被插入到:

<FrameLayout 
     android:id="@android:id/tabcontent" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:padding="0dp" /> 

回答

1

如果您正在使用GestureDetector尝试调用通过convertView.setLongClickable(true);

+0

mDetector.setIsLongpressEnabled(true);第一,并设置视图可长按,当我做出一个手势不重叠列表视图的区域,手势被正确检测。但手势必须在与ListView重叠的RelativeLayout中进行,而当我单击任何重叠的区域时,列表视图始终是检测到的元素... – marceloamx

+0

尝试将'GestureDetector'应用于'ListView'和'RelativeLayout '。例如,你可以使用'findViewById(android.R.id.content);' – vasart