我想在其中设置 4 个项目的 Horizontal RecyclerView。项目应出现在屏幕中央。每个项目都有固定的高度和宽度。我想将所有项目放在中心并使我的 RecyclerView match_parent。我实现的是使用 wrap_content 到 RecyclerView。但是,如果将 match_parent 赋予 recyclerView 所有项目都从左侧而不是中心出现。但我希望所有项目都使用 match_parent recyclerView 在屏幕中央。
这是我正在做的事情:
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerDragDrop"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_gravity="bottom|center_horizontal">
物品:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llContainer"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:gravity="bottom"
android:visibility="visible">
<ImageView
android:id="@+id/imgContainer"
android:layout_width="56dp"
android:layout_height="90dp"
android:layout_gravity="bottom"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:scaleType="fitXY"
android:src="@drawable/tube_delete"
android:visibility="visible" />
</LinearLayout>
爪哇:
final ContainerItemAdapter mAdapter = new ContainerItemAdapter(MainActivity.this, containers, this, mLayoutManager);
ItemTouchHelper.Callback callback =
new EditItemTouchHelperCallback(mAdapter);
mItemTouchHelper = new ItemTouchHelper(callback);
mItemTouchHelper.attachToRecyclerView(mRecyclerContainer);
mAdapter.setOnItemClickListener(new ContainerItemAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
showToastLay(position);
}
});
mRecyclerContainer.setAdapter(mAdapter);
使用上面的代码,我的所有项目都出现在屏幕中间,因为我的 recyclerview 位于中心并且具有 wrap_content 属性。
但为什么我需要我的 RecyclerView match_parent?
我通过使用 ItemTouchHelper 类来使用 RecyclerView 的拖放功能。现在,每当我将任何项目拖到 recyclerview 的末尾时,该项目开始从屏幕上消失,或者我们可以说项目直到屏幕宽度才拖动。我希望我的项目拖动直到屏幕宽度,或者只要项目达到 recyclerview 的宽度,它就应该停止拖动。如果我给我的recyclerview匹配父项,那么拖动工作正常,但它显示屏幕左侧的所有项目不在中心,我希望我的所有项目都显示在屏幕中心。
如果有任何可用的解决方案,请告诉我。
谢谢!
因为我正在使用拖放