首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么此布局在预览版中工作,而在我的设备上却不起作用?

为什么此布局在预览版中工作,而在我的设备上却不起作用?
EN

Stack Overflow用户
提问于 2016-01-26 15:24:37
回答 4查看 3.5K关注 0票数 2

我正在为学校开发一个Android应用程序。在Android的预览版上,我设计的布局看起来不错,但一旦我把它部署到我的物理设备(HTC m8,Android5.0.1)上,卡纸上的所有东西都会乱七八糟。

布局文件:

代码语言:javascript
运行
复制
<?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_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="de.seschi98.trgapp.activities.ScheduleActivity"
    tools:showIn="@layout/activity_schedule">



    <android.support.v7.widget.CardView
        android:id="@+id/card_view"
        android:layout_width="match_parent"
        android:layout_height="120dp">


        <GridLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:columnCount="4"
            android:rowCount="1"
            android:columnOrderPreserved="false"
            android:orientation="horizontal"
            android:rowOrderPreserved="false">

            <TextView
                android:id="@+id/lesson_number"
                android:text="01"
                android:textSize="22dp"
                android:layout_width="wrap_content"
                android:layout_column="0"
                android:layout_row="0"
                android:layout_rowWeight="1"
                android:gravity="center_vertical|center_horizontal"
                android:textStyle="bold"
                android:layout_columnWeight="20" />

            <GridLayout
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_column="1"
                android:layout_row="0"
                android:columnCount="2"
                android:layout_columnWeight="90"
                android:rowCount="3"
                android:layout_height="match_parent">


                <TextView
                    android:gravity="center_vertical|center_horizontal"
                    android:id="@+id/lesson_name"
                    android:text="Chemistry"
                    android:textSize="22dp"
                    android:layout_height="wrap_content"
                    android:layout_column="1"
                    android:layout_row="0"
                    android:layout_rowWeight="15"
                    android:layout_gravity="center_horizontal"
                    android:paddingTop="10dp"
                    android:layout_width="match_parent" />

                <TextView
                    android:gravity="bottom|center_horizontal"
                    android:id="@+id/teacher"
                    android:text="Mr Smith"
                    android:layout_height="wrap_content"
                    android:textSize="16dp"
                    android:layout_column="1"
                    android:layout_row="1"
                    android:layout_rowWeight="20"
                    android:layout_gravity="center_horizontal"
                    android:layout_width="match_parent" />


                <TextView
                    android:gravity="top|center_horizontal"
                    android:id="@+id/room"
                    android:text="Room A-123"
                    android:textSize="16dp"
                    android:layout_height="wrap_content"
                    android:layout_column="1"
                    android:layout_row="2"
                    android:layout_rowWeight="20"
                    android:layout_gravity="center_horizontal"
                    android:layout_width="match_parent" />


            </GridLayout>

            <View android:layout_row="0"
                android:layout_column="2"
                android:layout_height="match_parent"
                android:layout_width="0dp"
                android:layout_columnWeight="15">

            </View>

            <View android:layout_row="0"
                android:id="@+id/badge"
                android:layout_column="3"
                android:layout_height="match_parent"
                android:layout_width="0dp"
                android:background="#c0392b"
                android:layout_columnWeight="5">

            </View>


        </GridLayout>

    </android.support.v7.widget.CardView>

</LinearLayout>

预览屏幕

设备截屏 (不关心动作栏或其他东西,它只是CardView.)

// Update:昨天将我的Android版本升级到6.0.0 Marshmallow,现在运行良好。但我包括了AppCompat .它不适用于早期版本的Android的原因是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-02-01 16:06:41

不过,这是一个版本错误:

经过一些测试之后,我意识到我需要将布局文件中的<GridLayout>更改为<android.support.v7.widget.GridLayout>。没有考虑到这一点,因为我认为GridLayout将与安卓5兼容.

所以现在它在我所有的设备上都能正常工作,就像Android 5和Android 6一样。尽管它对我没有太大帮助,但是谢谢你的快速回答!

票数 3
EN

Stack Overflow用户

发布于 2016-01-26 15:31:26

android studio中的预览有时与您的设备不同,请确保在android studio中设置相同的手机屏幕大小和预览。

票数 0
EN

Stack Overflow用户

发布于 2016-01-26 15:59:24

肯尼已经给了你答案。

有时预览会显示得很好,但在某些设备上却是不同的。这通常是因为屏幕大小和(或)屏幕分辨率。

您可以为屏幕大小添加指定的布局。但是你必须明白android运行在各种各样的设备和屏幕上。在某些屏幕上,你总是会遇到麻烦,也许专注于小的设计问题并不是一条出路。

请查看以下链接:

Android和支持多屏幕布局

屏幕分布

编辑:

如果每个设备都有相同的问题,那么这可能不是我们已经告诉过的。让我再检查一下您的代码,然后再告诉您一些其他的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35017420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档