NestedScrollView 中的 GridLayout ,为啥我的列会超出视图空间?

Posted

技术标签:

【中文标题】NestedScrollView 中的 GridLayout ,为啥我的列会超出视图空间?【英文标题】:GridLayout in NestedScrollView , why do my columns go outside the view space?NestedScrollView 中的 GridLayout ,为什么我的列会超出视图空间? 【发布时间】:2016-04-14 07:52:07 【问题描述】:

基本上当我在 android studio 中创建一个新项目时,所有默认活动都包含一个 NestedScrollView。

如果我尝试将网格布局作为其唯一的子项,则列会超出屏幕大小。您可以在下图中看到:

这是添加一个与 (1,1) 中的瓶子相同的图像按钮,注意按钮的宽度是 wrap_content,但没有内容(酒是一个方形图标,设置为 src,具有 fitStart 比例),但由于某种原因,它覆盖了整个屏幕尺寸。

我尝试了多种方法使其工作,阅读 *** 我明白我应该使用 android.support.v7.widget.GridLayout 而不是网格布局,所以我做到了。然后我读到我应该添加一个线性布局作为父级,出于某种原因,但没有运气。

这是我的 xml 文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_main"
android:layout_
android:layout_
tools:context="it.giuseppi.alessandro.wine.Main">

<LinearLayout
    android:layout_
    android:layout_
    android:orientation="vertical" >

<android.support.v7.widget.GridLayout
    android:layout_
    android:layout_
    app:columnCount="3">

    <ImageButton
        android:layout_
        app:layout_column="0"
        android:id="@+id/imageButton"
        android:src="@drawable/premium"
        android:scaleType="fitStart"
        android:background="@color/yellow"
        android:baselineAlignBottom="false"
        app:layout_row="0"/>

    <ImageButton
        android:layout_
        android:layout_
        android:id="@+id/imageButton2"
        android:src="@drawable/premium"
        android:scaleType="fitStart"
        app:layout_column="1"
        app:layout_row="1" />

</android.support.v7.widget.GridLayout>
</LinearLayout>

</android.support.v4.widget.NestedScrollView>

如果需要,我可以提供我的整个项目。

【问题讨论】:

【参考方案1】:

检查您的行设置和行大小。

 app:layout_column="1"
    app:layout_row="1" />

行宽等于设备宽度。这意味着任何其他水平放置的项目都会移到屏幕右侧。

【讨论】:

以上是关于NestedScrollView 中的 GridLayout ,为啥我的列会超出视图空间?的主要内容,如果未能解决你的问题,请参考以下文章

NestedScrollView 中的 ListView 无法正确显示

详解NestedScrollView滑动监听中的一些判断技巧

NestedScrollView 内 RecyclerView 中的 SmoothScrollTo 项

NestedScrollView 中的 GridLayout ,为啥我的列会超出视图空间?

如何在viewPager的视图顶部使用nestedScrollView中的viewpager

Jetpack compose 中的 [NestedScrollView + RecyclerView] 或 [Nested RecyclerView (Recycler inside another