#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.