1

Это мой первый вопрос с SO.Фоновое изображение на экранах GridLayout RecyclerView android

Я только что использовал RecyclerView с GridManagerLayout CardViews. Теперь все работает отлично с CustomAdapter и все, но я хочу установить фоновое изображение за этими CardViews, так что он не так голоден позади них.

Теперь я попытался установить фоновое изображение на Фрагмент, используя его, XML-макет (FrameLayout), который содержит RecyclerView, а затем попробовал то же самое с самим RecyclerView.

Это убивает меня, чтобы попытаться установить изображение, поскольку я настроен на это, поскольку это кажется сложным.

Есть ли способ, которым это можно сделать?

Edit:

Схема проведения 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 и Recycl erView.

Я также попытался динамически добавить изображение к ним в методе OnCreateView ..... еще ничего: /.

+0

Это должно сработать, что вы видите, когда визуализируете xml при разработке. – harshitpthk

+0

Расскажи мне об этом. Как нет причин, почему это не должно ... на бумаге это то же самое, когда что-то получает фоновое изображение. Когда фрагмент создается и отображается xml, содержимое, которое я создаю из адаптера, встает и все денди. Но нет изображения в фоновом режиме. – SmiffyKmc

+0

хорошо ли вы видите фон, когда видите рендер вашего xml, в режиме рендеринга (режим предварительного просмотра)? – harshitpthk

ответ

1

нашел ответ. Была глупая ошибка! Делал все правильно, но изображение было немного большим и не создавалось. Так что проверено меньшее изображение на случайность, и это сработало ..... нужно попробовать другое изображение, прежде чем спрашивать о SO. Ожидал исключения OutOfMemory, если это была большая проблема с картинкой. Спасибо, хотя давид145 и харсы.

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.

+0

Спасибо, что проверил его сразу! :) Поэтому я попробовал то, что вы сказали, и это появляется в предварительном просмотре макета Android Studio, как и в том, как я пытался выше. Но после тестирования на устройстве ничего. По-прежнему голый белый за CardLayouts, которые заполнены на нем .... стыдно, хотя :( – SmiffyKmc

+0

Можете ли вы опубликовать какой-то код в своем открытии, поэтому мы получим лучший обзор. Вы уверены, что задали правильные параметры макета, а также используете действительное фоновое изображение? – dabo

+0

Просто отредактировал его там с двумя областями, в которых я попытался добавить изображение. Спасибо, что просмотрел его :) – SmiffyKmc

0

я знаю, что это должно работать так, как вы делаете, но вы можете попробовать взломать, добавив ImageView внутри вашего FrameLayout с фоном

<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> 
+0

Я выяснил проблему, настоящую глупую ошибку, но кое-что узнал. Я знаю, как вы хорошо себя чувствуете, но сумел получить его в конце с меньшим изображением с меньшим количеством бит :) – SmiffyKmc

+0

, который является указателем, который я могу использовать при настройке фоновых изображений с большими размерами. – harshitpthk

+0

Нет проблем вообще :). Даже самые маленькие вещи помогают! – SmiffyKmc

Смежные вопросы