3

我想在其中设置 4 个项目的 Horizo​​ntal 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匹配父项,那么拖动工作正常,但它显示屏幕左侧的所有项目不在中心,我希望我的所有项目都显示在屏幕中心。

如果有任何可用的解决方案,请告诉我。

谢谢!

因为我正在使用拖放

4

1 回答 1

0

尝试将列项填充列的宽度,同时将所有内容居中:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="180dp"
          android:orientation="vertical"
          android:padding="4dp">

<ImageView
    android:id="@+id/movie_column_photo"
    android:layout_width="80dp"
    android:layout_height="120dp"
    android:layout_gravity="center_horizontal"/>

<TextView
    android:id="@+id/movie_column_title"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"/>
</LinearLayout>

它可以帮助你

于 2018-03-22T11:18:11.007 回答