[解決済み] RecyclerViewのスクロールバーをコードで有効にする方法はありますか?
質問
RecyclerViewはListViewよりも効果的であるため、私はプロジェクトでそれを使用することを好みます。しかし、最近、私のカスタムViewGroupにそれを置くときに問題が発生しました。RecyclerViewは、このようにxmlでスクロールバーを設定するのが簡単です。
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" />
しかし、RecyclerViewのコードでスクロールバーを設定する方法がどうしても見つからず、試したのは以下の通りです。
mRecyclerView.setVerticalScrollBarEnabled(true);
と表示され、その後に この をAndroidのドキュメントで表示します。
そこで、LayoutManagerを自作して、必要と思われる関数をオーバーライドしようとしました。しかし、最終的に失敗しました。どなたか、どのように独自の LayoutManager を作成すべきか、または他の解決策を教えてください。ありがとうございます。
どのように解決するには?
現時点では、プログラム的にスクロールバーを有効にすることはできないようです。その動作の理由は、Android では
View.initializeScrollbarsInternal(TypedArray a)
または
View.initializeScrollbars(TypedArray a)
. どちらのメソッドも、RecyclerViewをAttributeSetでインスタンス化した場合のみ呼び出されます。
回避策として、RecyclerViewのみを使って新しいレイアウトファイルを作成することをお勧めします。
vertical_recycler_view.xml
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" />
これでRecyclerViewを膨らませ、好きなところにスクロールバー付きで追加することができます。
MyCustomViewGroup.java
public class MyCustomViewGroup extends FrameLayout
{
public MyCustomViewGroup(Context context)
{
super(context);
RecyclerView verticalRecyclerView = (RecyclerView) LayoutInflater.from(context).inflate(R.layout.vertical_recycler_view, null);
verticalRecyclerView.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false));
addView(verticalRecyclerView);
}
}
関連
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] APKファイルからソースコードを取得する方法はありますか?
-
[解決済み】RecyclerViewのaddHeaderViewに相当するものはありますか?
-
[解決済み] Nexus 4でUSBデバッグモードを見つける方法とオンにする方法
-
[解決済み] Androidの連絡先リストを呼び出すには?
-
[解決済み] 深くネストされたスタックから離れるとき、Fragmentのバックスタックをクリーンアップする方法はこれで良いのでしょうか?
-
[解決済み] Android: ランドスケープモード用の代替レイアウト xml
-
[解決済み] Android端末がHDPI画面かMDPI画面かを確認する方法は?
-
[解決済み] edittextのテキストがメールアドレスかどうかを確認するには?
-
[解決済み] Androidの環境設定。ユーザーが環境設定画面を使用していない場合、デフォルト値を読み込むにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ArrayAdapter<myClass> の使用方法
-
[解決済み] Android Webview - キャッシュを完全に削除する
-
[解決済み] Android Debug Bridgeでアプリケーションのインストール時にINSTALL_FAILED_VERSION_DOWNGRADEを無視する方法はありますか?
-
[解決済み] Android Studio - あいまいなメソッド呼び出し getClass()
-
[解決済み] Studio 3.4 をアップデートしたら、引数の leftShift() メソッドが見つかりませんでした。
-
[解決済み] ArrayList<MyCustomClass>をJSONArrayに変換する。
-
[解決済み] AndroidでTextViewの下にアンダーラインを引くには
-
[解決済み] アンドロイドのdatepickerダイアログで最大の日付を設定するには?
-
[解決済み] AsyncTaskLoaderとAsyncTaskの比較
-
[解決済み] ViewPager2でスワイプを無効にするには?