Android Studio中的布局和元素看起来就像我想要的那样但是只要我在设备上安装APK,布局就会崩溃。所有视图都在另一个视图的顶部折叠,这不是Android Studio的预览中显示的...
我使用线性布局和相对布局。我在1-2yrs之前使用过Android工作室并且没有约束布局这样的东西,现在每次创建布局时我都会遇到约束错误。
XML主要活动(只有一个):
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:layout_height="match_parent" tools:context="com.simultaneousequations.spacelaunchx.spacelaunchx.MainActivity">
<LinearLayout
android:id="@+id/linearLayoutTop"
android:layout_width="0dp"
android:layout_height="101dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="11dp"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@+id/linearLayoutCenter"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<RelativeLayout
android:id="@+id/relativeLayoutTop"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorLightGrey">
<LinearLayout
android:id="@+id/linearLayoutTopImage"
android:layout_width="110dp"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/iridumNEXT40_50"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_weight="1"
android:adjustViewBounds="false"
android:cropToPadding="false"
android:scaleType="fitStart"
app:srcCompat="@mipmap/iridiummission5" />
</LinearLayout>
<TextView
android:id="@+id/iridium5Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="12dp"
android:layout_toEndOf="@+id/linearLayoutTopImage"
android:layout_toRightOf="@+id/linearLayoutTopImage"
android:fontFamily="sans-serif-condensed"
android:text="Iridium NEXT 40 50"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textColor="@color/colorRedDragon"
android:textSize="16sp"
android:textStyle="bold|italic" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayoutCenter"
android:layout_width="400dp"
android:layout_height="101dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="101dp"
android:background="@color/colorLightGrey"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="109dp">
<LinearLayout
android:id="@+id/linearLayoutCenterImage"
android:layout_width="110dp"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/crs14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_weight="1"
android:scaleType="fitStart"
app:srcCompat="@mipmap/crs14" />
</LinearLayout>
<TextView
android:id="@+id/crs14Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
ndroid:layout_marginTop="16dp"
android:layout_toEndOf="@+id/linearLayoutCenterImage"
android:layout_toRightOf="@+id/linearLayoutCenterImage"
android:fontFamily="sans-serif-condensed"
android:text="SpaceX NASA - CRS-14"
android:textAlignment="center"
android:textAllCaps="false"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textColor="@color/colorRedDragon"
android:textSize="18sp"
android:textStyle="bold|italic" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayoutCenterBottom"
android:layout_width="400dp"
android:layout_height="101dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="101dp"
android:background="@color/colorLightGrey"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="109dp">
<LinearLayout
android:id="@+id/linearLayoutCenterBottomImage"
android:layout_width="110dp"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/bhu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_weight="1"
android:scaleType="fitCenter"
app:srcCompat="@mipmap/spacexlogo"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="101dp" />
</LinearLayout>
<TextView
android:id="@+id/bhuText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="12dp"
android:layout_toEndOf="@+id/linearLayoutCenterBottomImage"
android:layout_toRightOf="@+id/linearLayoutCenterBottomImage"
android:fontFamily="sans-serif-condensed"
android:text="Bangabandhu-1"
android:textAlignment="center"
android:textAllCaps="false"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textColor="@color/colorRedDragon"
android:textSize="18sp"
android:textStyle="bold|italic" />
</RelativeLayout>
</LinearLayout>
</android.support.constraint.ConstraintLayout>
我做错了什么?
答案 0 :(得分:0)
好像你不熟悉ConstraintLayout
。
没关系。如果您不想使用ConstraintLayout
,请不要使用它。使用它不是必需的。
您只需将根布局更改为LinearLayout
,RelativeLayout
或您希望根据自己的要求使用的任何其他布局。
我正在给你在这种情况下应该使用的代码。在该代码中,我使用RelativeLayout
作为根布局,因为您使用的是layout_alignParentBottom
类似的属性。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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:layout_height="match_parent"
tools:context="com.companys.appx.appx.MainActivity">
<LinearLayout
android:id="@+id/linearLayoutTop"
android:layout_width="0dp"
android:layout_height="101dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="11dp"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/relativeLayoutTop"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorLightGrey">
<LinearLayout
android:id="@+id/linearLayoutTopImage"
android:layout_width="110dp"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/iridumNEXT40_50"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_weight="1"
android:adjustViewBounds="false"
android:cropToPadding="false"
android:scaleType="fitStart"
app:srcCompat="@mipmap/iridiummission5" />
</LinearLayout>
<TextView
android:id="@+id/iridium5Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="12dp"
android:layout_toEndOf="@+id/linearLayoutTopImage"
android:layout_toRightOf="@+id/linearLayoutTopImage"
android:fontFamily="sans-serif-condensed"
android:text="Iridium NEXT 40 50"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textColor="@color/colorRedDragon"
android:textSize="16sp"
android:textStyle="bold|italic" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayoutCenter"
android:layout_width="400dp"
android:layout_height="101dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="101dp"
android:background="@color/colorLightGrey"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="109dp">
<LinearLayout
android:id="@+id/linearLayoutCenterImage"
android:layout_width="110dp"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/crs14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_weight="1"
android:scaleType="fitStart"
app:srcCompat="@mipmap/crs14" />
</LinearLayout>
<TextView
android:id="@+id/crs14Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="16dp"
android:layout_toEndOf="@+id/linearLayoutCenterImage"
android:layout_toRightOf="@+id/linearLayoutCenterImage"
android:fontFamily="sans-serif-condensed"
android:text="SpaceX NASA - CRS-14"
android:textAlignment="center"
android:textAllCaps="false"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textColor="@color/colorRedDragon"
android:textSize="18sp"
android:textStyle="bold|italic" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayoutCenterBottom"
android:layout_width="400dp"
android:layout_height="101dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="101dp"
android:background="@color/colorLightGrey"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="109dp">
<LinearLayout
android:id="@+id/linearLayoutCenterBottomImage"
android:layout_width="110dp"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/bhu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_weight="1"
android:scaleType="fitCenter"
app:srcCompat="@mipmap/spacexlogo"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="101dp" />
</LinearLayout>
<TextView
android:id="@+id/bhuText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="12dp"
android:layout_toEndOf="@+id/linearLayoutCenterBottomImage"
android:layout_toRightOf="@+id/linearLayoutCenterBottomImage"
android:fontFamily="sans-serif-condensed"
android:text="Bangabandhu-1"
android:textAlignment="center"
android:textAllCaps="false"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textColor="@color/colorRedDragon"
android:textSize="18sp"
android:textStyle="bold|italic" />
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
如果代码中有任何错误(拼写错误),请更改它。
唯一的一点是使用RelativeLayout
作为根布局,而不是ConstraintLayout
在上面的代码中,我删除了第一个ConstraintLayout
中的所有LinearLayout
属性,因为根布局不再是ConstraintLayout
。
此技巧将消除此问题。问题出现了,因为ContraintLayout
有自己的规则而你没有遵循。但是现在,当您更改根布局时,问题将不复存在。