这是我的第一个问题。
我刚刚使用了带有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方法中动态添加图像......仍然没有:/。
答案 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>