我正在尝试学习android
平台,一切都很好。我犯了一个错误,从未切换到其他手机检查我的布局。所以,我今天做了,结果很失望。我使用RelativeLayout
但主要使用height
中的fill_parent
和width
。
这是我的layout
文件之一:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffd5d6d6">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="47dip"
android:background="#ffffffff">
<ImageView
android:id="@+id/flag"
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@drawable/ic_back"
android:layout_centerVertical="true"
android:layout_marginLeft="16dp" />
<TextView
android:id="@+id/profileDesc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Roommate"
android:textColor="#ff3c3f41"
android:textSize="19dp"
android:layout_centerInParent="true" />
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="52dp">
<TextView
android:id="@+id/roommate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Who do you want your..."
android:textColor="#ff3c3f41"
android:textSize="20dp"
android:layout_alignParentStart="false"
android:layout_marginLeft="72dp"
android:layout_marginRight="72dp"
android:layout_marginTop="38dp" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="84dp"
android:layout_alignBottom="@+id/relativeLayout10">
<TextView
android:id="@+id/gender"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Gender"
android:textColor="#ff3c3f41"
android:textSize="19dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="38dp" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="89dp"
android:layout_marginTop="81dp"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:background="#ffffffff">
</RelativeLayout>
<TextView
android:id="@+id/age"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Age"
android:textColor="#ff3c3f41"
android:textSize="19dp"
android:layout_marginTop="215dp"
android:layout_centerHorizontal="true" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_marginTop="258dp"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:background="#ffffffff"
android:id="@+id/relativeLayout6">
</RelativeLayout>
</RelativeLayout>
<Button
android:id="@+id/button"
style="?android:attr/buttonStyleSmall"
android:layout_width="match_parent"
android:layout_height="47dp"
android:background="#fa6425"
android:text="Next"
android:textColor="#fff4f4f4"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
以上布局在不同的手机屏幕中显示不同的alignment
。解决这个问题的最佳方法是什么?任何帮助或指导都会很明显。
答案 0 :(得分:0)
您正在使用dp将元素相对于彼此固定定位:在更大和更高分辨率的屏幕中,具有固定高度和宽度的元素将更小,并且将具有更多空间来定位其他元素;在较小和较低分辨率的显示元素中,显示元素会更大,并且放置其他元素的空间更小。
最好不要使用固定尺寸和位置,而是尺寸和相对位置。最好使用更简单的布局作为LinearLayout,并将它们组合在一起。
答案 1 :(得分:0)
FILL_PARENT(在API等级8及更高版本中重命名为MATCH_PARENT),这意味着视图希望与其父级一样大(减去填充)...
fill_parent:视图应该与其父视图一样大(减去填充)。从API级别8开始不推荐使用此常量 替换为match_parent。