Вот моя проблема: Когда некоторые изображения помещаются в GridLayout, другие изображения приложений вокруг них исчезают. Я заметил, что изображение, которое, кажется, «вытолкнет» другие изображения с точки зрения, действительно большие ИЗОБРАЖЕНИЯкнопки не отображаются или удаляются друг от друга в GridLayout
ответ
Я расскажу о некоторых областях в XML, которые могут вызвать некоторые проблемы. Во-первых, вам нужен файл макета XML, который выглядит примерно так: это будет содержать макет верхнего уровня. Это будет в собственном файле.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/home_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Обратите внимание, что RecyclerView стоит отдельно в LinearLayout. Затем вам понадобится отдельный XML-файл , который будет содержать макет для ImageButton и TextView для каждой ячейки вашего макета. Это будет соответствовать каждой ячейке сетки в вашем RecyclerView. Я использовал android:scaleType="centerCrop"
для размещения больших изображений в ImageButton.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp">
<ImageButton
android:id="@+id/new_app_button"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_centerHorizontal="true"
android:adjustViewBounds="true"
android:scaleType="centerCrop" />
<TextView
android:id="@+id/new_app_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/new_app_button"
android:layout_centerInParent="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
</RelativeLayout>
onCreateViewHolder()
из RecyclerViewHolder
будет выглядеть следующим образом предполагающей «grid_cell.xml» это имя файла XML выше.
@Override
public RecyclerViewHolders onCreateViewHolder(ViewGroup parent, int viewType) {
View layoutView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.grid_cell, parent, false);
RecyclerViewHolders holder = new RecyclerViewHolders(layoutView);
return holder;
}
Дайте это попробовать. Я думаю, что все остальное в порядке. Надеюсь, это поможет вам.
- 1. GridLayout в панели не отображаются кнопки
- 2. Gridlayout рисует дочерние взгляды друг на друга
- 3. TextViews отображаются друг на друга
- 4. Кнопки перекрывают друг друга
- 5. GridLayout элементы размер не равен друг друг
- 6. Кнопки меняются друг на друга
- 7. 2 HTML-формы друг от друга
- 8. Кнопки с изображением не будут выравниваться справа друг от друга.
- 9. Как предотвратить кнопки Bootstrap от наследования друг от друга класса?
- 10. Полимерный компонент не зависит друг от друга?
- 11. Bootstrap - Столбцы отображаются друг на друга
- 12. Как заставить кнопки работать отделимо друг от друга
- 13. Достижимые вершины друг от друга
- 14. Два divs друг от друга
- 15. Кнопки в конце внутри друг друга
- 16. У AutoLayout есть кнопки друг на друга
- 17. Почему подсчитывают и очищают кнопки друг от друга?
- 18. Кнопки Python Tkinter очень далеки друг от друга
- 19. Хотите, чтобы изображения кнопки Javascript менялись независимо друг от друга
- 20. Почему эти кнопки так далеко друг от друга?
- 21. Субпроекты SBT в зависимости друг от друга
- 22. Расчет элементов в зависимости друг от друга
- 23. Центр JavaFX две кнопки ниже друг друга
- 24. Две кнопки удаляют заданные данные друг друга
- 25. Как сделать положение кнопки относительно друг друга?
- 26. Отдельные JSON Внутренние элементы друг от друга
- 27. события зависят друг от друга в JQuery
- 28. Радиоустройства находятся слишком далеко друг от друга
- 29. Подсчитайте количество элементов, отличающихся друг от друга
- 30. Обещание не дожидаясь друг друга
Можете ли вы разместить свой макет и код, который заполняет макет? Я не думаю, что сообщение об ошибке об адаптере указывает на проблему. – Cheticamp
@Cheticamp I обновлен с помощью файла Layout Xml. Пожалуйста, дайте мне знать, если вы увидите что-нибудь. Большое спасибо заранее –
Является ли этот XML все в одном файле или вы добавили пару разных макетов вместе? Я не вижу XML для вашего GridLayout. – Cheticamp