2017-10-22 5 views
0

フラグメントのScrollViewをどのように処理するのですか? フラグメントのScrollViewをどのように処理するのですか?

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".ExampleFragment"> 

     <ScrollView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/myScroll"> 
     </ScrollView> 

</FrameLayout> 

とフラグメントに私がしようとしている

@Override 
public void onStart() { 
    super.onStart(); 

    ScrollView refresh = (ScrollView) getActivity().findViewById(R.id.myScroll); 
    refresh.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast toast = Toast.makeText(getActivity().getApplicationContext(), "TEST", Toast.LENGTH_LONG); 
      toast.show(); 
     } 
    }); 
} 

しかし、何もクリックしないことが起こるの後

フラグメントのクリックを処理する他のアイデアはありますか?これはScrollViewである必要はありません。私はFragmentLayoutも試みましたが、多くのバグを返します。 ScrollViewのonClickListener理由は無視さ

+1

デバッグを行いましたか? onclick関数は正しく実行されますか?トーストショーは正常に実行されますが、画面には表示されませんか?エラーはどこで正確に起こりますか? – koksalb

答えて

0

でこのコードはhereを説明します。

このようにonTouchListenerを追加できます。

refresh.setOnTouchListener(new View.OnTouchListener() { 
     /** 
     * Called when a touch event is dispatched to a view. This allows listeners to 
     * get a chance to respond before the target view. 
     * 
     * @param v  The view the touch event has been dispatched to. 
     * @param event The MotionEvent object containing full information about 
     *    the event. 
     * @return True if the listener has consumed the event, false otherwise. 
     */ 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      Toast toast = Toast.makeText(getActivity().getApplicationContext(), "TEST", Toast.LENGTH_LONG); 
      toast.show();    
      return false; 
     } 
    }); 
0

使用onCreateView

ScrollView refresh = (ScrollView) getActivity().findViewById(R.id.myScroll); 
refresh.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Toast toast = Toast.makeText(getActivity().getApplicationContext(), "TEST", Toast.LENGTH_LONG); 
     toast.show(); 
    } 
}); 
関連する問題