6

मैं एक एंड्रॉइड प्रोजेक्ट विकसित कर रहा हूं जिसमें इसका एक दर्शक है। मैंने अपने व्यूपेजर के लिए एडाप्टर लिखा और मेरे एडाप्टर में स्क्रॉलव्यू और उसके अंदर कुछ विचार शामिल हैं।स्क्रॉलव्यू के लिए OnClickListener कैसे सेट करें?

मैं चाहता हूं कि जब उपयोगकर्ता स्क्रॉलव्यू पर क्लिक करता है, तो कुछ होता है (मैंने यह हिस्सा भी लिखा और इसका परीक्षण किया और यह काम करता है)।

मैं अपने स्क्रॉलव्यू के लिए ऑनक्लिक लिस्टनर लागू करता हूं लेकिन जब उपयोगकर्ता उस पर क्लिक करता है तो यह ट्रिगर नहीं होता है।

मैंने पहले ही this पढ़ा है लेकिन यह मेरे लिए काम नहीं है।

onClickListener के लिए मेरे कोड यहाँ है

rootView = inflater.inflate(R.layout.level_selector_list_view_adapter, container, false); 
ScrollView scroll = (ScrollView) rootView.findViewById(R.id.level_selector_view_scroll_view); 

scroll.setOnClickListener(new OnClickListener() 
{ 
     @Override 
     public void onClick(View arg0) 
     { 
      Log.e(MainActivity.WATERMELON_TAG, "Click!!!"); 
     } 
}); 

और मेरे लेआउट कोड यह है:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="@dimen/level_selector_values_main_page_view_pager_width" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 

<ScrollView 
    android:id="@+id/level_selector_view_scroll_view" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:clickable="true" 
    tools:ignore="UselessParent" > 

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:clickable="false" 
     tools:ignore="UselessParent" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_gravity="center" 
      android:clickable="false" 
      android:orientation="vertical" > 

      <ImageView 
       android:id="@+id/level_selector_view_pager_adapter_level_logo" 
       android:layout_width="@dimen/level_selector_values_view_pager_adapter_level_logo_width" 
       android:layout_height="@dimen/level_selector_values_view_pager_adapter_level_logo_height" 
       android:layout_gravity="center_horizontal" 
       android:layout_marginTop="@dimen/level_selector_values_view_pager_adapter_level_logo_top_margin" 
       android:clickable="false" 
       android:scaleType="fitXY" 
       tools:ignore="ContentDescription" /> 

      <TextView 
       android:id="@+id/level_selector_view_pager_adapter_level_name" 
       android:layout_width="@dimen/level_selector_values_view_pager_adapter_level_name_width" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal" 
       android:layout_marginTop="@dimen/level_selector_values_view_pager_adapter_level_name_top_margin" 
       android:clickable="false" 
       android:gravity="center" 
       android:textColor="@color/level_selector_values_level_name_font_color" 
       android:textSize="@dimen/level_selector_values_level_name_font_size" /> 

      <TextView 
       android:id="@+id/level_selector_view_pager_adapter_level_score" 
       android:layout_width="@dimen/level_selector_values_view_pager_adapter_level_score_width" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal" 
       android:layout_marginTop="@dimen/level_selector_values_view_pager_adapter_level_score_top_margin" 
       android:clickable="false" 
       android:gravity="center" 
       android:textColor="@color/level_selector_values_level_name_font_color" 
       android:textSize="@dimen/level_selector_values_font_size" /> 
     </LinearLayout> 

     <ImageView 
      android:id="@+id/level_selector_view_pager_adapter_lock" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_gravity="center" 
      android:alpha="0.75" 
      android:clickable="false" 
      android:scaleType="fitXY" 
      android:src="@drawable/lock" 
      tools:ignore="ContentDescription" /> 
    </FrameLayout> 
</ScrollView> 

उत्तर

9

बच्चे अपने ScrollView की Views क्लिक ईवेंट आप पर क्या उपभोग कर रहे हैं ScrollView

इस समस्या का समाधान तत्कालScrollView के बच्चे को onClickLIstener, आपके मामले में FrameLayout स्थापित करने के लिए है।

"क्लिक करने योग्य" के लिए लेआउट सेट करना न भूलें।

इसके अलावा, मैं FrameLayout का उपयोग न करने की सलाह देता हूं, क्योंकि यह केवल एक बेकार कंटेनर है। इसके बजाए, बस LinearLayout दें जो वर्तमान में FrameLayout का बच्चा ScrollView पर अगला बच्चा है।

+0

मैं इस कोशिश करते हैं और यह काम नहीं करता! : (( – strings95

+0

मेरे संपादन pls देखें। –

+0

मैं इसे आजमाता हूं और यह फिर से काम नहीं करता है! मैंने स्क्रॉलव्यू झूठ के सभी बच्चे को क्लिक करने योग्य और स्क्रॉलव्यू के माता-पिता भी क्लिक किया। लेकिन परिणाम पहले जैसा था :( – strings95

0

कोशिश:

public class ClassName implements OnClickListener { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View root = inflater.inflate(R.layout.fragment_child, container, false); 
     ScrollView scrollView= (ScrollView) root.findViewById(R.id.my_ScrollView); 

     scrollView.setOnClickListener(this); 

     return root; 
    } 
    @Override 
    public void onClick(View v) { 
     Log.e(MainActivity.WATERMELON_TAG, "Click!!!"); 
    } 
} 
+0

यह पहली नजर में एक अच्छा विचार है! लेकिन मैं कोशिश करता हूं कि यह भी नहीं है: ( – strings95

+0

ठीक है, कृपया अपना जावा कोड भी पोस्ट करें, और देखते हैं कि हम इसे समझ सकते हैं। मैंने हाल ही में एक ऐप बनाया है जो आप चाहते हैं। केवल अंतर यह है कि मेरे पास है स्क्रॉलव्यू के अंदर एक टेक्स्टव्यू जो पूरे पृष्ठ को फैलाता है। मैंने टेक्स्ट व्यू को क्लिक करने योग्य बना दिया है। ओह, और आपने root.findViewById (R.id.my_scrollView) को R.id.level_selector_view_scroll_view में बदल दिया है। दाएं? – user3711421

+0

फिलिप जहोदा सही है। ScrollView आपके अन्य दृश्यों के पीछे छिपा हुआ है, इसलिए आप इसे क्लिक नहीं कर सकते हैं। अगर आप चित्र आईडी = level_selector_view_pager_adapter_level_logo क्लिक करने योग्य बनाने की कोशिश करेंगे, तो यह काम करेगा। क्योंकि यह सभी विचारों के शीर्ष पर है, वैसे ही आपके टेक्स्ट व्यू। – user3711421

संबंधित मुद्दे