タグ付けされた質問 「android-recyclerview」

RecyclerViewウィジェットは、ListViewとGridViewのより高度で柔軟なバージョンです。

8
RecyclerViewの最後の子のマージン/パディング
最後の行にPadding / Margin Bottomを追加し、最初の行にPadding / Margin Topを追加しようとしています。すべてのチャイルドに影響するため、アイテムxmlではできません。 RecyclerViewアダプターにヘッダーと子があるので、 android:padding="4dp" android:clipToPadding="false" 各ヘッダーの最後の最初の行で個別に使用する必要があります

12
RecyclerView-特定の位置でアイテムの上部にスムーズにスクロールする方法は?
RecyclerViewでは、次のコマンドを使用して、選択したアイテムの一番上に突然スクロールできます。 ((LinearLayoutManager) recyclerView.getLayoutManager()).scrollToPositionWithOffset(position, 0); ただし、これにより、アイテムが突然上位に移動します。スムーズにアイテムの先頭に移動したい。 私も試しました: recyclerView.smoothScrollToPosition(position); ただし、アイテムを一番上に選択した位置に移動しないため、うまく機能しません。位置にあるアイテムが表示されるまでリストをスクロールするだけです。

10
Recyclerviewとさまざまなタイプの行インフレの処理
新しいを使用しようとしてRecyclerViewいますが、RecyclerViewさまざまなタイプの行/カードビューが膨らむ例を見つけることができませんでした。 ListViewIオーバーライドするgetViewTypeCountとgetItemViewType、列の異なる種類を扱います。 私は「古い」方法のようにそれをすることになっていますか、LayoutManagerそれとも私は何かをするべきですか?誰かが私を正しい方向に向けることができるのかと思っていました。1つのタイプの例しか見つけられないからです。 少し違うカードのリストが欲しいのですが。またはscrollView、cardViews内部でwith を使用する必要があります...アダプターなしで作成しrecyclerViewますか?

6
単一アイテムを表示するリサイクラービュー
recyclerviewが単一のアイテムしか表示しないという奇妙なエラーに直面しています。以下は、recyclerviewアダプターのコードです。 public class ChatAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { List<chat> chats; String username; final int My=0,Their=1; public ChatAdapter(List<chat> chats) { this.chats = chats; this.username = PushApp.getApp().getSPF().getStringData(Constants.ANAME); } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { RecyclerView.ViewHolder viewHolder; LayoutInflater inflater = LayoutInflater.from(parent.getContext()); switch (viewType) { case My: View v1 = inflater.inflate(R.layout.my_chat_child, parent, false); …

2
RecyclerViewスクロール効果を削除する
私の中に2つRecyclerViewありますNavigationDrawer。どちらにも青いスクロール効果があります。 両方でこの効果を削除するにはどうすればよいRecyclerViewsですか? 変更しようとしました:mRecyclerView.setHasFixedSize(true);にfalse、しかしそれはスクロール効果を削除します。(この方法の効果は何ですか?)

10
CardView layout_width =“ match_parent”は、親のRecyclerViewの幅と一致しません
私はlayout_width = "match_parent"のRecyclerViewを含むフラグメントを持っています: <android.support.v7.widget.RecyclerView 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" android:layout_gravity="center" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity$PlaceholderFragment" /> RecyclerView内の項目は、同じくlayout_width = "match_parent"が設定されたCardViewです。 <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view" android:layout_gravity="center" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="20dp" card_view:cardCornerRadius="4dp"> <TextView android:layout_gravity="center" android:id="@+id/info_text" android:layout_width="match_parent" android:gravity="center" android:layout_height="match_parent" android:textAppearance="?android:textAppearanceLarge"/> </android.support.v7.widget.CardView> 以下のようにアイテムビューを膨らませます。 public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { CardView v = (CardView) LayoutInflater.from(parent.getContext()) .inflate(R.layout.card_listitem, null, …

12
Android 5.0-RecyclerViewにヘッダー/フッターを追加する
ヘッダーをに追加する方法を理解しようと試みましたがRecyclerView、失敗しました。 これは私がこれまでに得たものです: @Override protected void onCreate(Bundle savedInstanceState) { ... layouManager = new LinearLayoutManager(getActivity()); recyclerView.setLayoutManager(layouManager); LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); headerPlaceHolder = inflater.inflate(R.layout.view_header_holder_medium, null, false); layouManager.addView(headerPlaceHolder, 0); ... } アイテムのLayoutManager処分を扱うオブジェクトのようRecyclerViewです。addHeaderView(View view)メソッドが見つからなかったので、LayoutManager's addView(View view, int position)メソッドを使用して、ヘッダーとして機能する最初の位置にヘッダービューを追加することにしました。 Aaandこれは醜いところです: java.lang.NullPointerException: Attempt to read from field 'android.support.v7.widget.RecyclerView$ViewHolder android.support.v7.widget.RecyclerView$LayoutParams.mViewHolder' on a null object reference at android.support.v7.widget.RecyclerView.getChildViewHolderInt(RecyclerView.java:2497) …

9
RecyclerViewでスティッキーヘッダーを作成するにはどうすればよいですか?(外部libなし)
下の画像のように、外部ライブラリを使用せずに、画面上部のヘッダービューを修正したいと思います。 私の場合、アルファベット順にしたくありません。2種類のビュー(ヘッダーと通常)があります。一番上、最後のヘッダーに固定したいだけです。

5
スワイプしてRecyclerViewを閉じます[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 2年前休業。 この質問を改善する 以前はSwipeToDismissライブラリを使用していましたが、今はRecyclerViewに移行しようとしていますが、それほど明確ではありません。このlibの代替品を知っていますか?ゼロから実装する方法はありますか?

27
「スクラップされたビューまたはアタッチされたビューがリサイクルされない可能性がある」と、RecyclerViewがクラッシュする
私はを使用RecyclerViewしてAndroid Webサイトから取得したの単純な実装を使用しStaggeredGridLayoutManagerていますが、アプリをクラッシュさせるこのエラーが発生し続けます。 java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false isAttached:true at android.support.v7.widget.RecyclerView$Recycler.recycleViewHolderInternal(RecyclerView.java:3501) at android.support.v7.widget.RecyclerView$LayoutManager.scrapOrRecycleView(RecyclerView.java:5355) at android.support.v7.widget.RecyclerView$LayoutManager.detachAndScrapAttachedViews(RecyclerView.java:5340) at android.support.v7.widget.StaggeredGridLayoutManager.onLayoutChildren(StaggeredGridLayoutManager.java:572) at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:1918) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:2155) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1021) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.support.v7.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:502) at …

3
プログラムでrecyclerviewに新しいアイテムを追加しますか?
私はまだrecyclerviewに頭を悩ませています。arraylistがあります。これを使用して、リサイクラービューを初期化します。 アダプターとレイアウトマネージャーを設定して新しいアイテムをリサイクラービューポストに追加するにはどうすればよいですか? private void initData() { mItems = new ArrayList<String>(); for (int i = 0; i < ITEMS_COUNT; i++) { mItems.add("Item " + (i + 1)); } } private void initRecyclerView() { mRecentRecyclerView = (RecyclerView) findViewById(R.id.recentrecyclerView); mRecentRecyclerView.setHasFixedSize(true); mRecentLayoutManager = new LinearLayoutManager(this); mRecentRecyclerView.setLayoutManager(mRecentLayoutManager); mAdapter = new RecyclerView.Adapter<CustomViewHolder>() { @Override public CustomViewHolder …

17
notifyDatasetChanged()の後にRecyclerViewが点滅する
APIから一部のデータを読み込み、画像のURLと一部のデータを含むRecyclerViewがあり、networkImageViewを使用して画像を遅延読み込みします。 @Override public void onResponse(List<Item> response) { mItems.clear(); for (Item item : response) { mItems.add(item); } mAdapter.notifyDataSetChanged(); mSwipeRefreshLayout.setRefreshing(false); } アダプターの実装は次のとおりです。 public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) { if (isHeader(position)) { return; } // - get element from your dataset at this position // - replace the contents of the …

13
RecyclerViewで特定のアイテムを更新/更新する方法
で特定のアイテムを更新しようとしていRecyclerViewます。 ストーリー:ユーザーがアイテムをクリックするたびに、が表示されますAlertDialog。ユーザーは[OK]ボタンをクリックしてテキストを入力できます。このテキストをこのアイテムに表示して非表示にしたいImageView-XMLとアダプターで宣言ViewHolder- AlertDialogポジティブボタンでこの関数を使用して、アイテムを更新しました。 private void updateListItem(int position) { View view = layoutManager.findViewByPosition(position); ImageView medicineSelected = (ImageView) view.findViewById(R.id.medicine_selected); medicineSelected.setVisibility(View.VISIBLE); TextView orderQuantity = (TextView) view.findViewById(R.id.order_quantity); orderQuantity.setVisibility(View.VISIBLE); orderQuantity.setText(quantity + " packet added!"); medicinesArrayAdapter.notifyItemChanged(position); } しかし、このコードは渡された位置のitemViewを変更するだけでなく、他のいくつかのitemViewも変更します! 特定のitemViewをクリックして正しく変更するにはどうすればよいですか?

12
RecyclerView GridLayoutManager:スパン数を自動検出する方法は?
新しいGridLayoutManagerの使用:https ://developer.android.com/reference/android/support/v7/widget/GridLayoutManager.html 明示的なスパンカウントが必要になるため、問題は次のようになります。行ごとにいくつの「スパン」が収まるかをどのようにして知ることができますか?結局、これはグリッドです。測定された幅に基づいて、RecyclerViewが収まるだけのスパンが必要です。 古いを使用するとGridView、「columnWidth」プロパティを設定するだけで、適合する列の数が自動的に検出されます。これは基本的に、RecyclerViewで複製したいものです。 OnLayoutChangeListenerを RecyclerView このコールバックでは、単一の「グリッドアイテム」を膨らませて測定します spanCount = recyclerViewWidth / singleItemWidth; これはかなり一般的な動作のようですので、私が見ない簡単な方法はありますか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.