2014-04-04 67 views
3

鑑於以下佈局:兒童滾動型攔截/阻斷/吞嚥點擊到它的父視圖

<RelativeLayout 
    android:id="@+id/item" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <ImageView 
     android:id="@+id/imageview_item" 
     android:layout_width="200dp" 
     android:layout_height="150dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:scaleType="fitXY" 
     android:adjustViewBounds="false" /> 

    <ScrollView 
     android:id="@+id/scrollview_description" 
     android:layout_width="200dp" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/imageview_item" 
     android:scrollbars="vertical" 
     android:fillViewport="true"> 

     <TextView 
      android:id="@+id/textView_description" 
      style="@style/TextDescription" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

    </ScrollView> 

</RelativeLayout> 

在代碼中我添加了一個OnClickListenter父/容器RelativeLayout的。

View itemView = (View) rootView.findViewById(R.id.item); 

itemView.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // Do stuff 
    }); 

如果ImageView的被竊聽這工作得很好,但是如果描述滾動型/ TextView的區域拍了拍OnClickListenter的onClick()方法從來沒有發射,大概是因爲滾動型是處理/吞嚥的觸摸。

如何從ScrollView傳遞標準點擊事件以確保它的父項relativeLayout OnClickListenter.onClick()方法被激發? (但顯然還是有滾動型滾動)

感謝

+0

在滾動視圖標籤的佈局,請添加android:clickable =「false」。請嘗試一下,讓我知道結果 –

+0

我面臨同樣的問題。 @OliverPearmain如果你有解決方案,你可以發佈答案嗎? – Rohit

回答

0

聲明你的滾動型non clickable and non focusable通過單擊事件到parentView。

android:clickable="false" 
android:focusable="false" 
+0

感謝您的回答,但不幸的是,這似乎並沒有工作。我已經嘗試了android:clickable =「false」,正如我在其他人對類似問題的回答中所看到的那樣。 –

0

ScrollView總是需要一個孩子作爲佈局。 ScrollView永遠不會將直接子視爲View。因此,創建一個佈局內滾動視圖和內部佈局添加您的TextView如下:

在這裏我已經添加LinearLayout您可以根據您的選擇添加布局。

<ScrollView 
    android:id="@+id/scrollview_description" 
    android:layout_width="200dp" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/imageview_item" 
    android:scrollbars="vertical" 
    android:fillViewport="true"> 

    <LinearLayout 
      android:id="@+id/linerlayout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical"> 
    <TextView 
     android:id="@+id/textView_description" 
     style="@style/TextDescription" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 
    </LinearLayout> 
</ScrollView> 
+0

欣賞這一建議,但不幸的是,這似乎無法解決問題。 –