中心

时间:2018-03-22 11:04:44

标签: android android-recyclerview drag-and-drop center itemtouchhelper

我想在其中设置4个项目的Horizo​​ntal RecyclerView。项目应出现在屏幕的中央。每个项目都有固定的高度和宽度。我想将所有项目放在中心并使我的RecyclerView match_parent。我实现的是使用wrap_content到RecyclerView。但是如果给予recycle_parent到recyclerView,则所有项目都从左侧不在中心。但是我希望屏幕中心的所有项目都带有match_parent recylcerView。

这是我正在做的事情:

<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,那么拖动工作正常,但它显示屏幕左侧的所有项目不在中心,我希望我的所有项目都显示在屏幕的中心。

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

谢谢!

因为我正在使用拖放

1 个答案:

答案 0 :(得分: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>

它可以帮助你