Как правильно установить GridView?

#java #android #xml #android-layout

#java #Android #xml #android-макет

Вопрос:

Как правильно настроить GridView на панели инструментов. Я хочу margin , чтобы он был "0dp" на всех устройствах. Как это сделать?

Я пытался установить marginTop , но на устройствах с большим экраном GridView закрывает панель инструментов. На отдельных устройствах это выглядит по-разному.

 <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    tools:context="MainActivity">

    <android.support.v7.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@ id/toolbar"
        android:background="#000000"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:title="Application"/>


    <GridView
        android:id="@ id/gridview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/toolbar"
        android:layout_marginTop="56dp"
        android:horizontalSpacing="8dp"
        android:numColumns="2"
        android:verticalSpacing="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0"></GridView>

</android.support.constraint.ConstraintLayout>
  

Комментарии:

1. О, извините за неправильный тег.

Ответ №1:

Вы можете использовать относительный макет. Внутри относительного макета вы размещаете свою панель инструментов и свой GridView.

Внутри GridView напишите эту строку :

 android:layout_below="@id/toolbar"
  

он поместит GridView под панель инструментов.

Вот так :

  <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

<android.support.v7.widget.Toolbar
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@ id/toolbar"
    android:background="#000000"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:title="Application"/>


<GridView
    android:id="@ id/gridview"
    android:layout_width="match_parent"
    android:layout_below="@id/toolbar"
    android:layout_height="match_parent"
    android:layout_below="@id/toolbar"
    android:horizontalSpacing="8dp"
    android:numColumns="2"
    android:verticalSpacing="8dp"></GridView>

        </RelativeLayout>
  

У вас есть 2 варианта :

1) Вы можете просто опубликовать этот код внутри своего макета ограничений и ввести нужную команду (относящуюся к constraintlayout) в RelativeLayout

2) Непосредственно замените ConstraintLayout на RelativeLayout (в данном случае я рекомендую вам этот метод, его намного проще кодировать)