RecyclerView上的背景图片GridLayout查看android

时间:2015-10-25 13:16:32

标签: android user-interface background-image android-recyclerview

这是我的第一个问题。

我刚刚使用了带有CardViews的GridManagerLayout的RecyclerView。现在这一切都与CustomAdapter完美配合,但我想在这些CardView背后设置一个背景图像,所以它背后不是那么光明。

现在我尝试使用它将背景图像设置为Fragment,XML布局(FrameLayout)保存RecyclerView,然后尝试使用RecyclerView本身。

由于这似乎很棘手,所以我试图设置一个图像,因为它似乎很棘手。

有什么方法可以做到吗?

编辑:

持有RecyclerView的布局:

<LinearLayout 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:background="@drawable/background"
tools:context="fragments.SpaceFlightFragment">

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</FrameLayout>

在片段中创建视图的方法:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View v = inflater.inflate(R.layout.fragment_spaceflight, container, false);

    RecyclerView recyclerView = (RecyclerView)v.findViewById(R.id.recyclerView);

    SpaceFlightAdapter spaceFlightAdapter = new SpaceFlightAdapter(missions);

    recyclerView.setAdapter(spaceFlightAdapter);

    recyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 2));
    return v;
}

现在我尝试将XML布局中的背景图像设置为所有标签,LinearLayout,FrameLayout和RecyclerView。

我还试图在OnCreateView方法中动态添加图像......仍然没有:/。

3 个答案:

答案 0 :(得分:1)

找到答案。是一个愚蠢的错误!做得对不对,但图像有点大,没有创造。所以测试了一个较小的图像,以便机会它和它工作.....应该尝试另一个图像之前询问SO。如果这是一个大问题,期待OutOfMemory例外。谢谢david145和hars。

答案 1 :(得分:0)

将所有内容包装到LinearLayout并设置它的背景对我来说很有用:

<LinearLayout android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background_light">

        <FrameLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.v7.widget.RecyclerView
                android:id="@+id/recycler_view"
                android:scrollbars="vertical"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingTop="4dp"
                android:paddingBottom="8dp"
                android:clipToPadding="false"/>

        </FrameLayout>

</LinearLayout>

您也可以使用FrameLayout而不是LinearLayout。

答案 2 :(得分:0)

我知道它应该按照您的方式工作,但是您可以通过在FrameLayout中添加带有背景的imageview来尝试黑客

<LinearLayout 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:background="@drawable/background"
   tools:context="fragments.SpaceFlightFragment">

<FrameLayout
  android:layout_width="match_parent"
  android:layout_height="match_parent">
  <ImageView
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:background="@drawable/background"
 />
<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
</FrameLayout>

</LinearLayout>