我正在掌握约束布局,到目前为止,找到了一些不寻常的东西!
到目前为止,这是我的努力:
这是我想要的方式。
在运行时,事情变得有趣至少可以说:
布局的XML是:
<FrameLayout 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="my.first.FFragment">
<!-- TODO: Update blank fragment layout -->
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/boxStatusLabel"
android:layout_width="0dp"
android:layout_height="19dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="20dp"
android:layout_marginTop="28dp"
android:text="Status: "
app:layout_constraintEnd_toStartOf="@+id/boxStatusField"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/boxStatusField"
android:layout_width="0dp"
android:layout_height="18dp"
android:layout_marginEnd="176dp"
android:layout_marginTop="28dp"
android:text="Unknown"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/lastContactLabel"
android:layout_width="0dp"
android:layout_height="19dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="20dp"
android:layout_marginTop="4dp"
android:text="Last Contacted Time:"
app:layout_constraintEnd_toStartOf="@+id/lastContactField"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/boxStatusLabel" />
<TextView
android:id="@+id/lastContactField"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="120dp"
android:layout_marginTop="52dp"
android:text="Not made contact"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/homeLine1"
android:layout_width="0dp"
android:layout_height="2dp"
android:background="@android:color/black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/systemInUseNameField"
android:layout_width="0dp"
android:layout_height="21dp"
android:layout_marginEnd="152dp"
android:layout_marginTop="12dp"
android:text="No system running"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/homeLine1" />
<ImageView
android:id="@+id/systemInUseImage"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:src="@drawable/systemInUseImage"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/homeLine1" />
<TextView
android:id="@+id/systemInUseLabel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="12dp"
android:text="What's running:"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/homeLine1" />
</android.support.constraint.ConstraintLayout>
</FrameLayout>
有人可以更正我的XML,我可以将其加载回我的Android Studio进行研究,以了解我的尝试错误的原因吗?将约束布局放在一起时,我对错误的解释也会有所帮助。
答案 0 :(得分:2)
你有很多硬编码的大小......你的父级FrameLayout也没用。
试试这个:
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="20dp">
<TextView
android:id="@+id/boxStatusLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Status: "
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/boxStatusField"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:text="Unknown"
app:layout_constraintStart_toEndOf="@+id/lastContactLabel"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/lastContactLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="Last Contacted Time:"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/boxStatusLabel"/>
<TextView
android:id="@+id/lastContactField"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="4dp"
android:text="Not made contact"
app:layout_constraintStart_toEndOf="@+id/lastContactLabel"
app:layout_constraintTop_toBottomOf="@+id/boxStatusLabel"/>
<View
android:id="@+id/homeLine1"
android:layout_width="0dp"
android:layout_height="2dp"
android:background="@android:color/black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/systemInUseNameField"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:text="No system running"
app:layout_constraintStart_toEndOf="@+id/systemInUseLabel"
app:layout_constraintTop_toTopOf="@+id/systemInUseLabel"/>
<ImageView
android:id="@+id/systemInUseImage"
android:layout_width="150dp"
android:layout_height="150dp"
android:src="@mipmap/ic_launcher"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/homeLine1"/>
<TextView
android:id="@+id/systemInUseLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="What's running:"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/homeLine1"/>
</android.support.constraint.ConstraintLayout>
答案 1 :(得分:1)
显示你的课程正在膨胀这个布局? (MainActivity或Fragment)。
另外我建议将layout_width设置为非零。
修改强> 我们通过IRC讨论解决问题。我们检查的事情: 1.扩展AppCompatActivity和android.support.v4.app.Fragment 2.最终问题在main_activity.xml中,android:layout_width =&#34; wrap_content&#34; 机器人:layout_height =&#34; WRAP_CONTENT&#34;
FragmentManager.replace()不会像这样工作。请标记为正确并关闭。
答案 2 :(得分:1)
问题是主要活动xml。我的问题的XML在片段中。
此片段属于FrameLayout,其宽度和高度不正确。
我从:
更改了我的主activity.xml布局<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="0dp"
android:layout_marginStart="0dp"
android:background="?android:attr/windowBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/navigation" />
<FrameLayout
android:id="@+id/frame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:text="Title bbb"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp">
</FrameLayout>
要:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="0dp"
android:layout_marginStart="0dp"
android:background="?android:attr/windowBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/navigation" />
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:text="Title bbb"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp">
</FrameLayout>
注意FrameLayout上layout_width和layout_height上的变化参数。这是压缩我的片段内容:)