Android 布局预览与设备中部署的应用程序不匹配?
Android Layout Preview not matching with the Deployed App in Device?
我使用 Andorid 支持库做了一个 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>
但是,当我在我的应用程序中部署它时,相对布局变得混乱,所有 TextView 和 ImageView 都在彼此之上。
我该如何解决这个问题?
而不是
android:layout_toEndOf
更好地使用
android:layout_below
toEndOf 和 toStartOf 是最近在 API 17 级即 android 4.2 版本中添加的,因此在 android
的较低版本中将找不到它
XML版面设计的不错。我弄乱了 layout_toEndOf,因为 API 17 以下的设备不支持它。但是,我的测试设备是 API 14。我将标签 layout_toRightOf 添加到 XML 现在,它在测试设备中完美呈现。
我使用 Andorid 支持库做了一个 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>
但是,当我在我的应用程序中部署它时,相对布局变得混乱,所有 TextView 和 ImageView 都在彼此之上。
我该如何解决这个问题?
而不是
android:layout_toEndOf
更好地使用
android:layout_below
toEndOf 和 toStartOf 是最近在 API 17 级即 android 4.2 版本中添加的,因此在 android
的较低版本中将找不到它XML版面设计的不错。我弄乱了 layout_toEndOf,因为 API 17 以下的设备不支持它。但是,我的测试设备是 API 14。我将标签 layout_toRightOf 添加到 XML 现在,它在测试设备中完美呈现。