Просмотр прокрутки с описанием сетки не начинается сверху

#android #android-layout #android-scrollview #android-gridview

#Android #android-layout #android-scrollview #android-gridview

Вопрос:

Даже в режиме конструктора он начинается где-то посередине, и я не могу прокручивать вверх, я могу прокручивать только вниз. Аналогично, когда я запускаю приложение, оно показывает содержимое где-то посередине, и я могу прокручивать только вниз, кажется, что самая высокая точка — это то, с чего я начинаю. Я не знаю, проблема ли это с полями или что-то еще

 <?xml version="1.0" encoding="utf-8"?>
<ScrollView 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">

<GridLayout
    android:id="@ id/GridLayout1"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:columnCount="2"
    android:rowCount="16"
    android:orientation="horizontal"
    tools:context=".MainActivity" >
    
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:id="@ id/myFrame">
        <ImageView
            android:id="@ id/my_img1"
            android:layout_width="190dp"
            android:layout_height="105dp"
            android:layout_margin="4dp"
            android:src="@drawable/ic_img"/>
        <TextView
            android:id="@ id/descTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginLeft="4dp"
            android:layout_marginBottom="34dp"
            android:background="@android:color/transparent"
            android:text="@string/text_1"
            android:textColor="@android:color/black"
            android:textSize="16sp"
            android:textStyle="bold"/>
    </FrameLayout>
    .
    .
    .
  

Макеты фреймов повторяются 32 раза.

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

1. горизонтальный макет сетки с количеством столбцов 2 в вертикальном режиме прокрутки?? Также FrameLayout не имеет ориентации, просто к вашему сведению

2. Есть ли проблема с горизонтальным расположением сетки?

3. если вы хотите горизонтальную прокрутку, используйте горизонтальный вид прокрутки, если у вас есть scrollview, первым дочерним элементом scrollview должен быть макет, который расширяется вертикально, как вертикальный линейный макет,

4. Я изменил ориентацию макета сетки (который является дочерним элементом ScrollView) с горизонтальной на вертикальную, но это изменило только расположение элементов, и оно по-прежнему начинается не сверху, а посередине. Я мог прокручивать вертикально, когда дочерний элемент тоже был горизонтальным.

Ответ №1:

Решаемая путем удаления android:layout_gravity=»center» из GridLayout.