我的RelativeLayout
存在问题。
我将6 Views
放在彼此旁边并且有效。
我遇到的问题是EditTexts
。当我将宽度设置为wrap_content
时,它们太小了。
当我将它们设置为match_parent
时,它们会占据整个宽度(它们覆盖另一个Views
),而不是调整到它们旁边的Views
的边缘。
所以我的问题是如何在不给它们静态宽度的情况下使它们合适?
这是我的代码:
<RelativeLayout
android:id="@+id/relativelayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tv1"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="text 1" />
<EditText
android:id="@+id/et1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/tv1"
android:singleLine="true" />
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/et1"
android:text="text 2" />
<EditText
android:id="@+id/et2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/tv2"
android:singleLine="true" />
<TextView
android:id="@+id/tv3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/et2"
android:text="text 3" />
<Spinner
android:id="@+id/spinner1"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/tv3" />
</RelativeLayout>
答案 0 :(得分:4)
尝试以下代码。
如果您希望盒子的大小稍微不同,则需要应用静态尺寸或稍微调整一下重量以获得您想要的正确空间。
但是,我建议实际改变布局一点点。将它们全部放在同一条线上似乎有些混乱。除非这是横向模式。然后它可能没问题。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativelayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="text 1" />
<EditText
android:id="@+id/et1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true" />
<TextView
android:id="@+id/tv2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="text 2" />
<EditText
android:id="@+id/et2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true" />
<TextView
android:id="@+id/tv3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="text 3" />
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_toRightOf="@+id/tv3" />
</LinearLayout>
布局图:
答案 1 :(得分:1)
使用相对布局,您需要一个令人满意的包装内容或静态尺寸。
如果我理解得很好,您希望编辑文本填充屏幕宽度的剩余部分。
您必须使用LinearLayout和android:layout_weight
属性 - you can find an example here:
<LinearLayout
android:id="@+id/ll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation:"horizontal">
<TextView
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="text 1" />
<EditText
android:id="@+id/et1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"/>
<EditText
android:id="@+id/et2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true" />
<TextView
android:id="@+id/tv3"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="text 3" />
<Spinner
android:id="@+id/spinner1"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true" />
</LinearLayout>