私は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. RecyclerViewのビューを非表示にする方法
- 3. C#でプロセスを非表示/非表示にする方法は?
- 4. 外部刺激なしでttk.comboboxドロップダウンリストを非表示にする方法
- 5. NestedScrollViewの内部でrecyclerViewを使用するときにスクロールのツールバーを非表示にする方法
- 6. RecyclerViewにレイアウトを表示する方法
- 7. ブートストラップデータテーブルの列を非表示/非表示にする方法は?
- 8. テキスト単位で部門を非表示にする方法
- 9. RecyclerViewをスクロールするときのLinearLayoutの表示/非表示は?
- 10. UIView外でコンテンツを非表示にする方法
- 11. 外部変数からJavascriptでDIVを表示/非表示
- 12. Django Admin Interfaceで外部リンクを表示する方法は?
- 13. SSRSで外部画像を表示する方法は?
- 14. 外部画像をテキストビューに表示する方法は?
- 15. ボタンクリックでコンテンツを表示/非表示にする方法は?
- 16. 外部からrecyclerviewアイテムのレイアウトを変更する方法は?
- 17. 外部イベントに基づいてマーカーを表示/非表示にする
- 18. jqgrid内部のボタンを非表示にする方法
- 19. 一部のリソースタイプからプロパティページを非表示にする方法
- 20. メインウィンドウのクロムエクステンションを非表示/非表示にする方法
- 21. コマンドラインでDB2で外部キー名を表示する方法
- 22. エンタープライズアーキテクト:データベースダイアグラムの外部キーラベルを非表示にする
- 23. MVC 3で外部画像を表示する方法
- 24. 外部キーの内容をphpmyadminに表示する方法
- 25. Djangoテンプレート:values_listに外部キーの値を表示する方法
- 26. XSL-FO外部グラフィックを前面に表示する方法
- 27. 外部キーデータをデータグリッドに表示する方法
- 28. アプリケーションの外部にアプリケーション情報を表示する方法
- 29. material-uiテーブルで列を非表示/表示する方法は?
- 30. JPanelをJFrameに表示/非表示する方法は?
「RecyclerViewで表示」とはどういう意味ですか?あなたはrecyclerViewのアイテムを意味しますか? – Umarov
RecyclerViewはビュー内にあることを意味しますが、このコンテキストでは –