我正在尝试解决布局边距问题,在模拟器上运行应用程序后,状态文本不会出现在我希望的位置。 随附完整的布局代码。我该如何改进代码以减轻将来出现的问题?
<?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"
android:background="@color/colorPrimary"
tools:context=".SettingsActivity">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/settings_profile_image"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:src="@drawable/default_profile" />
<TextView
android:id="@+id/settings_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="244dp"
android:text="@string/user_name"
android:textColor="@android:color/background_light"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:id="@+id/settings_user_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
android:layout_marginBottom="260dp"
android:text="@string/user_profile_status"
android:textColor="@android:color/background_light"
android:textSize="18sp" />
</RelativeLayout>
我想念什么?
答案 0 :(得分:0)
如果要在用户名下方显示状态,请使用
android:layout_below="@+id/settings_username"
在您当前的布局中,marginTop没有用,垂直位置由
决定android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="260dp"
最好使用ContraintLayout,它会删除所有未使用的属性(例如,如果margin没有用处,则margin属性将被自动删除)。
答案 1 :(得分:0)
尝试此操作您只需删除 android:layout_marginBottom =“ 260dp” 和 android:layout_alignParentBottom =“ true” 并添加 android:layout_below =“ @ settings_user_status中的+ id / settings_username“
<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"
android:background="@color/colorPrimary"
tools:context=".SettingsActivity">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/settings_profile_image"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:src="@drawable/default_profile" />
<TextView
android:id="@+id/settings_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="244dp"
android:text="@string/user_name"
android:textColor="@android:color/background_light"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:id="@+id/settings_user_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
android:layout_below="@+id/settings_username"
android:text="@string/user_profile_status"
android:textColor="@android:color/background_light"
android:textSize="18sp" />
</RelativeLayout>
答案 2 :(得分:0)
在第一处,您可能想要尝试android引入的约束布局作为android材质设计的一部分,该布局旨在避免嵌套视图的所有开销。在约束布局视图中,可以拖动和下垂视图,并且可以为边界分配8的倍数的边距。强烈建议使用约束布局,而不是旧的布局嵌套。