私はview
を持っています。ボタン/レイアウトをクリックして表示したいときは、別の場所に触れると表示します。どうしたらいいですか? dispatchTouchEvent(Motion Event)
にコードを書きました。しかし、私はそれを行う別の方法があると思う。外部タッチイベントでrecyclerviewを非表示にする方法は?
答えて
RecyclerViewの外部を別のクリック可能なビューで塗りつぶし、そのビューに対してsetOnTouchListenerメソッドを実装できます。ここでは例です:
のは、我々はRelativeLayoutの上部にRecyclerViewを持っているとしましょう:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="300dp"
android:scrollbars="vertical" />
<!--View below is just to fill the remaining space. We will use this view to catch outside touch-->
<View
android:id="@+id/outside_detector"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/recyclerView"
android:clickable="true"
android:focusable="true"/>
</RelativeLayout>
そして、我々は我々がRecyclerViewの外側をクリックしたときに、私たちrecyclerviewを隠し、表示したい:
((View) findViewById(R.id.outside_detector)).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
if(arg1.getAction() == MotionEvent.ACTION_DOWN){
if(recyclerView.getVisibility() == View.VISIBLE){
recyclerView.setVisibility(View.INVISIBLE);
}else{
recyclerView.setVisibility(View.VISIBLE);
}
}
return true;
}
});
ボタンクリックでrecyclerviewを表示したい場合は、ボタンClickListenerの内側にrecyclerView.setVisibility(View.VISIBLE)
メソッドを記述してください!
希望すると便利です。
thaksは関係ありませんが、このRelativeLayoutで多くのビューを作成すると、より簡単なインターセプトイベントのためのもう一つの 'view'が作成されます。 –
申し訳ありませんが、私はそれを取得していません。あなたが言ったことを明確にしてもらえますか? – Umarov
'view 'の作成にはいくつかの副作用があるかもしれないと思った。 –
- 1. RecyclerViewのビューを非表示にする方法
- 2. C#でプロセスを非表示/非表示にする方法は?
- 3. 外部刺激なしでttk.comboboxドロップダウンリストを非表示にする方法
- 4. NestedScrollViewの内部でrecyclerViewを使用するときにスクロールのツールバーを非表示にする方法
- 5. RecyclerViewにレイアウトを表示する方法
- 6. RecyclerViewをスクロールするときのLinearLayoutの表示/非表示は?
- 7. ブートストラップデータテーブルの列を非表示/非表示にする方法は?
- 8. UIView外でコンテンツを非表示にする方法
- 9. SSRSで外部画像を表示する方法は?
- 10. Django Admin Interfaceで外部リンクを表示する方法は?
- 11. 外部画像をテキストビューに表示する方法は?
- 12. 外部からrecyclerviewアイテムのレイアウトを変更する方法は?
- 13. jqgrid内部のボタンを非表示にする方法
- 14. コマンドラインでDB2で外部キー名を表示する方法
- 15. メインウィンドウのクロムエクステンションを非表示/非表示にする方法
- 16. エンタープライズアーキテクト:データベースダイアグラムの外部キーラベルを非表示にする
- 17. MVC 3で外部画像を表示する方法
- 18. 外部キーデータをデータグリッドに表示する方法
- 19. 外部キーの内容をphpmyadminに表示する方法
- 20. material-uiテーブルで列を非表示/表示する方法は?
- 21. JPanelをJFrameに表示/非表示する方法は?
- 22. ページリロード後に非表示のdivを表示する方法は?
- 23. EmberJSでビューを表示/非表示にする方法
- 24. テキストを非表示にしてクリックで表示する方法
- 25. ナビゲーション・ドロワーをプログラムで表示/非表示にする方法
- 26. wicketでyui.calendar.DatePickerを表示/非表示にする方法
- 27. Visual Basicで画面を表示/非表示にする方法
- 28. javascriptを使用してdivを非表示/非表示にする方法は?
- 29. ボタンの表示/非表示方法は?
- 30. 外部キーのEntity Framework値で表示する方法
「RecyclerViewで表示」とはどういう意味ですか?あなたはrecyclerViewのアイテムを意味しますか? – Umarov
RecyclerViewはビュー内にあることを意味しますが、このコンテキストでは –