【问题标题】:Android Layout Preview not matching with the Deployed App in Device?Android 布局预览与设备中部署的应用程序不匹配?
【发布时间】:2015-10-31 01:37:45
【问题描述】:

我使用 Andorid Support Library 做了一个 Card 布局,并在其中实现了 TextView 和 Image 视图。

卡片视图 XML

   <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v7.widget.CardView
        android:id="@+id/card_view_1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        card_view:cardElevation="5dp"
        card_view:contentPadding="5dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="10dp">

            <LinearLayout
                android:orientation="vertical"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:id="@+id/originLayout">

                <TextView
                    android:id="@+id/tvOrigin"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:text="BOM"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:textSize="40sp" />

                <TextView
                    android:id="@+id/tvDeparture"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:text="20:45"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:textSize="20sp" />

            </LinearLayout>

            <ImageView
                android:id="@+id/imageView"
                android:layout_width="50sp"
                android:layout_height="50sp"
                android:layout_margin="18dp"
                android:layout_toEndOf="@+id/originLayout"
                android:src="@drawable/flight" />

            <LinearLayout
                android:orientation="vertical"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toEndOf="@+id/imageView"
                android:layout_margin="10dp"
                android:id="@+id/destiLayout">

                <TextView
                    android:id="@+id/tvDesti"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:text="GOA"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:textSize="40sp" />

                <TextView
                    android:id="@+id/tvArrival"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:text="21:45"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:textSize="20sp" />

            </LinearLayout>
        </RelativeLayout>


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

</LinearLayout>

但是,当我在我的应用程序中部署它时,相对布局变得杂乱无章,所有的 TextViews 和 ImageView 都相互重叠。

我该如何解决这个问题?

【问题讨论】:

  • toEndOf 是 api17+。检查您的设备是否具有正确的 android 版本。
  • 另外,您的元素是一个接一个。 LinearLayout 会更简单且等效

标签: android android-cardview android-relativelayout


【解决方案1】:

而不是

 android:layout_toEndOf

更好地使用

android:layout_below

toEndOf 和 toStartOf 是最近在 API 级别 17 即 android 4.2 版本中添加的,因此在较低版本的 android 中将找不到它

【讨论】:

  • 一个/没有。 b/ 你这么说,但为什么呢?
【解决方案2】:

XML 布局设计得不错。我搞砸了 layout_toEndOf,因为低于 API 17 的设备不支持它。但是,我的测试设备是 API 14。我将标签 layout_toRightOf 添加到 XML 中,现在,它在测试设备中完美呈现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    相关资源
    最近更新 更多