应用程序布局在较小的显示器中重叠
Posted
技术标签:
【中文标题】应用程序布局在较小的显示器中重叠【英文标题】:app layout overlapping in smaller displays 【发布时间】:2018-09-23 04:58:05 【问题描述】:我使用磁贴设计为我的应用创建了一个主页,但我的最后一个磁贴在小于 5 英寸的设备中隐藏了一半。请帮忙!!我认为应用程序没有在这些设备中调整大小,瓷砖不会缩小。我是 android 应用开发的初学者。
下面的代码是我的 activity_home.xml 和 这是我的应用在 5 英寸设备中的屏幕截图。
您可以看到最后一个图块在上面的两个之下。为什么会这样?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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_
android:layout_
tools:context=".Home"
android:orientation="vertical"
android:padding="10dp"
android:background="@color/backgroundcolor"
android:gravity="center"
>
<LinearLayout
android:clipChildren="false"
android:gravity="center"
android:orientation="horizontal"
android:layout_
android:layout_>
<android.support.v7.widget.CardView
android:foreground="?android:attr/selectableItemBackground"
android:clickable="true"
android:layout_
android:layout_
android:layout_margin="10dp">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical"
android:gravity="center">
<ImageView
android:layout_
android:layout_
android:background="@drawable/cerclebackgroundpurple"
android:src="@drawable/ic_attach_money_black_24dp"
android:padding="10dp"
/>
<TextView
android:layout_
android:layout_
android:textStyle="bold"
android:layout_marginTop="10dp"
android:text="Banking"/>
<View
android:layout_
android:layout_
android:background="@color/lightgray"
android:layout_margin="10dp"/>
<TextView
android:layout_
android:layout_
android:gravity="center"
android:text="Check your bank activities"
android:padding="5dp"
android:textColor="@android:color/darker_gray"
/>
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:foreground="?android:attr/selectableItemBackground"
android:clickable="true"
android:layout_
android:layout_
android:layout_margin="10dp">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical"
android:gravity="center">
<ImageView
android:layout_
android:layout_
android:background="@drawable/cerclebackgroundpink"
android:src="@drawable/ic_lightbulb_outline_black_24dp"
android:padding="10dp"
/>
<TextView
android:layout_
android:layout_
android:textStyle="bold"
android:layout_marginTop="10dp"
android:text="Ideas"/>
<View
android:layout_
android:layout_
android:background="@color/lightgray"
android:layout_margin="10dp"/>
<TextView
android:layout_
android:layout_
android:gravity="center"
android:text="Check your bank activities"
android:padding="5dp"
android:textColor="@android:color/darker_gray"
/>
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
<LinearLayout
android:clipChildren="false"
android:gravity="center"
android:orientation="horizontal"
android:layout_
android:layout_>
<android.support.v7.widget.CardView
android:foreground="?android:attr/selectableItemBackground"
android:clickable="true"
android:layout_
android:layout_
android:layout_margin="10dp">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical"
android:gravity="center">
<ImageView
android:layout_
android:layout_
android:background="@drawable/cerclebackgroundgreen"
android:src="@drawable/ic_control_point_black_24dp"
android:padding="10dp"
/>
<TextView
android:layout_
android:layout_
android:textStyle="bold"
android:layout_marginTop="10dp"
android:text="Add"/>
<View
android:layout_
android:layout_
android:background="@color/lightgray"
android:layout_margin="10dp"/>
<TextView
android:layout_
android:layout_
android:gravity="center"
android:text="Check your bank activities"
android:padding="5dp"
android:textColor="@android:color/darker_gray"
/>
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_
android:layout_
android:layout_margin="10dp">
<LinearLayout
android:foreground="?android:attr/selectableItemBackground"
android:clickable="true"
android:layout_
android:layout_
android:orientation="vertical"
android:gravity="center">
<ImageView
android:layout_
android:layout_
android:background="@drawable/cerclebackgroundyello"
android:src="@drawable/ic_attach_file_black_24dp"
android:padding="10dp"
/>
<TextView
android:layout_
android:layout_
android:textStyle="bold"
android:layout_marginTop="10dp"
android:text="Links"/>
<View
android:layout_
android:layout_
android:background="@color/lightgray"
android:layout_margin="10dp"/>
<TextView
android:layout_
android:layout_
android:gravity="center"
android:text="Check your bank activities"
android:padding="5dp"
android:textColor="@android:color/darker_gray"
/>
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
<LinearLayout
android:clipChildren="false"
android:gravity="center"
android:orientation="horizontal"
android:layout_
android:layout_>
<android.support.v7.widget.CardView
android:layout_
android:layout_
android:layout_margin="10dp">
<LinearLayout
android:foreground="?android:attr/selectableItemBackground"
android:clickable="true"
android:layout_
android:layout_
android:orientation="vertical"
android:gravity="center">
<ImageView
android:layout_
android:layout_
android:background="@drawable/cerclebackgroundpurple"
android:src="@drawable/ic_wifi_black_24dp"
android:padding="10dp"
/>
<TextView
android:layout_
android:layout_
android:textStyle="bold"
android:layout_marginTop="10dp"
android:text="Add"/>
<View
android:layout_
android:layout_
android:background="@color/lightgray"
android:layout_margin="10dp"/>
<TextView
android:layout_
android:layout_
android:gravity="center"
android:text="Check your bank activities"
android:padding="5dp"
android:textColor="@android:color/darker_gray"
/>
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
【问题讨论】:
您好,您需要这样做:***.com/questions/32860815/… 【参考方案1】:您可以通过多种方式实现这一目标。
1.如果你想要固定大小,你可以把它放在滚动视图中。您可以使滚动条不可见。
您可以使用重量来平均划分高度。
您可以从dimens.xml 定义高度,并创建一个单独的dimens 文件来定义较小屏幕的高度。
【讨论】:
【参考方案2】:我通过添加解决了这个问题
app:layout_constrainedHeight="true"
android:maxHeight="640dp"
到 xml 中的图像视图。这样,当没有足够的空间容纳所有东西时,imageview 将减小其大小。也许这对你有帮助。
【讨论】:
以上是关于应用程序布局在较小的显示器中重叠的主要内容,如果未能解决你的问题,请参考以下文章
iOS - 相同小宽度的 UIView 不会在较小的设备上布局