在android编程中,如何将布局高度更改为最小,以便所有元素仍显示在其上。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textview_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+string/email" />
<EditText
android:id="@+id/textinput_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textEmailAddress" />
<TextView
android:id="@+id/textview_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+string/password" />
<EditText
android:id="@+id/textinput_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/button_exit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+string/cancel" />
<Button
android:id="@+id/button_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+string/ok" />
</LinearLayout>
</LinearLayout>
这是我的代码,当我运行它时,会显示很多空白区域。此布局仅显示在对话框中。
感谢。
修改
我将高度降至最低,但OK按钮现在出现在取消按钮旁边。我希望它是正确对齐的。
答案 0 :(得分:1)
使用以下代码时
android:layout_height="wrap_content"
你实际上确保你的布局在地球上的每个Android手机上看起来都像你想要的那样
对于间距,Android定义了两个属性:android:layout_margin和android:padding。 android:layout_margin属性定义容器的间距,而android:padding定义视图的间距。
android:padding - 定义控件所有四边的内容间距。要单独定义每一侧的填充,请使用android:paddingLeft,android:paddingRight,android:paddingTop和android:paddingBottom。
android:paddingTop - 定义内容与控件顶部之间的间距
android:paddingBottom - 定义内容与控件底部之间的间距。
android:paddingLeft - 定义内容与控件左侧之间的间距。
android:paddingRight - 定义内容与控件右侧之间的间距。
* 已编辑的代码请务必将名称“mainactivity更改为您的活动名称”*
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textview_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+string/email" />
<EditText
android:id="@+id/textinput_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textEmailAddress" />
<TextView
android:id="@+id/textview_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+string/password" />
<EditText
android:id="@+id/textinput_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/button_exit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+string/cancel" />
<Button
android:id="@+id/button_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+string/ok" />
</LinearLayout>
</RelativeLayout>
您的回答以下完整的工作代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textview_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+string/email" />
<EditText
android:id="@+id/textinput_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textEmailAddress" />
<TextView
android:id="@+id/textview_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+string/password" />
<EditText
android:id="@+id/textinput_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="28.05" >
<Button
android:id="@+id/button_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:gravity="center_vertical"
android:text="@+string/ok" />
<Button
android:id="@+id/button_exit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="@+string/cancel" />
</RelativeLayout>
</LinearLayout>
答案 1 :(得分:0)
将cancel:layout_weight =“1”添加到cancel和ok按钮,使它们在水平LinearLayout上显示为另一个。
您也可以使用RelativeLayout,这样可以更好地控制按钮的布局方式,您可以左右对齐,说明哪一个是右边等等。
答案 2 :(得分:-1)
使用线性布局并删除边距,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textview_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+string/email" />
<EditText
android:id="@+id/textinput_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textEmailAddress" />
<TextView
android:id="@+id/textview_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+string/password" />
<EditText
android:id="@+id/textinput_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword" />
<Button
android:id="@+id/button_exit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+string/cancel" />
<Button
android:id="@+id/button_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+string/ok" />
</LinearLayout>