Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Recyclerview:使第一个viewholder项目从顶部开始,并留出一点空间_Android_Android Recyclerview_Android Framelayout - Fatal编程技术网

Android Recyclerview:使第一个viewholder项目从顶部开始,并留出一点空间

Android Recyclerview:使第一个viewholder项目从顶部开始,并留出一点空间,android,android-recyclerview,android-framelayout,Android,Android Recyclerview,Android Framelayout,希望这张照片能解释一下我想做什么。 请记住,textview和recyclerview都是框架布局的视图组 我希望有一个recyclerview,它能将父项与框架布局匹配。显示“地点”一词的textview必须位于recyclerview的顶部。您无法从图像中看到它,但是textview的alpha为0.5,因此它是半透明的 我想做的是使recyclerviewholders,这是您在图片中看到的深绿色项目,从textview的高度下方稍微开始。这样,当用户滚动recyclerview时,项目

希望这张照片能解释一下我想做什么。 请记住,textview和recyclerview都是框架布局的视图组

我希望有一个recyclerview,它能将父项与框架布局匹配。显示“地点”一词的
textview
必须位于recyclerview的顶部。您无法从图像中看到它,但是
textview
alpha
为0.5,因此它是半透明的

我想做的是使
recyclerviewholders
,这是您在图片中看到的深绿色项目,从
textview
的高度下方稍微开始。这样,当用户滚动
recyclerview
时,项目将在半透明的
textview
下优雅地滚动


有没有办法确保recyclerview中的第一个项目从recyclerview的顶部(即文本视图的高度)稍微开始,这样就可以实现此效果?

仅尝试第一个项目的项目装饰

public class VerticalSpaceItemDecoration extends RecyclerView.ItemDecoration {

    private final int mVerticalSpaceHeight;

    public VerticalSpaceItemDecoration(int mVerticalSpaceHeight) {
        this.mVerticalSpaceHeight = mVerticalSpaceHeight;
    }

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent,
            RecyclerView.State state) {
        if (parent.getChildAdapterPosition(view) == 1) {
            outRect.top = mVerticalSpaceHeight;
        }
    }
}
用法

RecycleView recyclerView = (RecyclerView) rootView.findViewById(R.id.fragment_home_recycler_view);
LinearLayoutManager mLinearLayoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(mLinearLayoutManager);

//add ItemDecoration
recyclerView.addItemDecoration(new VerticalSpaceItemDecoration(TOP_ITEM_SPACE));

希望这能有所帮助。

仅在第一件物品上尝试物品装饰

public class VerticalSpaceItemDecoration extends RecyclerView.ItemDecoration {

    private final int mVerticalSpaceHeight;

    public VerticalSpaceItemDecoration(int mVerticalSpaceHeight) {
        this.mVerticalSpaceHeight = mVerticalSpaceHeight;
    }

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent,
            RecyclerView.State state) {
        if (parent.getChildAdapterPosition(view) == 1) {
            outRect.top = mVerticalSpaceHeight;
        }
    }
}
用法

RecycleView recyclerView = (RecyclerView) rootView.findViewById(R.id.fragment_home_recycler_view);
LinearLayoutManager mLinearLayoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(mLinearLayoutManager);

//add ItemDecoration
recyclerView.addItemDecoration(new VerticalSpaceItemDecoration(TOP_ITEM_SPACE));

希望这有帮助。

只需创建一个与TextView相同高度的布局即可

layout/header.xml

<View xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="@dimen/recyclerViewWidth"
    android:layout_height="@dimen/yourTextViewHeight"
    android:background="@android:color/transparent" />
在<代码>回收视图<代码>的
获取视图

可设置性(false)

只需创建一个与文本视图高度相同的布局,就像

layout/header.xml

<View xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="@dimen/recyclerViewWidth"
    android:layout_height="@dimen/yourTextViewHeight"
    android:background="@android:color/transparent" />
在<代码>回收视图<代码>的
获取视图

可设置性(false)

您可以试试<代码>android:clipToPadding=“false”

定义如果填充不为零,视图组是否将剪裁其子视图并调整(但不剪裁)其填充的任何EdgeEffect。默认情况下,此属性设置为true


你可以试试<代码>android:clipToPadding=“false”

定义如果填充不为零,视图组是否将剪裁其子视图并调整(但不剪裁)其填充的任何EdgeEffect。默认情况下,此属性设置为true



不会的。请记住,视图组是一个框架布局。如果我按照你的建议做了,recyclerview将不会在textview下滚动-我无法在半透明的textview下看到recyclerview。你的解决方案会起作用,但问题是我将在我的recyclerview中创建一个假的第一项,当你的recyclerview总是在更改时,这将变得难以管理,用户将项目添加到顶部,删除项目等。好的,这很酷。我认为Sachet Bajracharya先生的解决方案会有所帮助,但不会。请记住,视图组是一个框架布局。如果我按照你的建议做了,recyclerview将不会在textview下滚动-我无法在半透明的textview下看到recyclerview。你的解决方案会起作用,但问题是我将在我的recyclerview中创建一个假的第一项,当你的recyclerview总是在更改时,这将变得难以管理,用户将项目添加到顶部,删除项目等。好的,这很酷。我认为Sachet Bajracharya先生的解决方案会有所帮助。这是一个有趣的建议。这是一个有趣的建议。我稍后会试试这个。