我正试图平衡我的EditText
次观看。
但我似乎无法让它们正确排列,我无法增加EditText
的大小。起初我用RelativeLayout
尝试了它,这让我可以准确定位,但尺寸仍然没有。我想如果我切换到水平LinearLayout
,那么我可以使用layout_weight
调整两个字段,EditText
会自动填充空格,但情况似乎并非如此。有什么建议吗?
在屏幕上显示时,此自定义视图会添加到垂直LinearLayout
。
我的布局文件:
<?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:padding="1dp"
android:weightSum="1"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.6"
android:gravity="center_vertical"
android:textColor="@color/ws_blue"
android:background="#00ffff"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Settings Item: "
android:id="@+id/itemLabel" />
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.4"
android:textColor="@color/ws_blue"
android:textColorHint="@color/ws_hint"
android:background="#ffff00"
android:id="@+id/et_item_value" />
</LinearLayout>
Android Studio预览:
我手机的实际屏幕截图:
答案 0 :(得分:4)
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp">
<TableRow>
<TextView
android:layout_weight="1"
android:gravity="center"
android:text="Device ID:"
android:textColor="@android:color/holo_green_dark"
android:textStyle="bold" />
<TextView
android:layout_weight="1"
android:text="00:00:00:00:00:00"
android:textColor="@android:color/holo_green_dark"
android:textStyle="bold" />
</TableRow>
<TableRow android:layout_marginTop="8dp">
<TextView
android:layout_weight="1"
android:text="Wifi Presets:"
android:textColor="@android:color/holo_blue_dark"
android:textSize="18sp"
android:textStyle="bold" />
<Spinner
android:layout_marginRight="20dp"
android:layout_weight="1"
android:textColor="@android:color/holo_green_dark"
android:textStyle="bold" />
</TableRow>
<TableRow android:layout_marginTop="8dp">
<TextView
android:layout_weight="1"
android:background="@android:color/holo_blue_bright"
android:text="SSID:"
android:textColor="@android:color/holo_blue_dark"
android:textSize="18sp"
android:textStyle="bold" />
<EditText
android:layout_marginLeft="16dp"
android:layout_weight="1"
android:background="#FFFF00"
android:hint="SSID"
android:textColor="@android:color/holo_blue_dark"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp"
android:textStyle="bold" />
</TableRow>
<TableRow android:layout_marginTop="8dp">
<TextView
android:layout_weight="1"
android:background="@android:color/holo_blue_bright"
android:text="Password:"
android:textColor="@android:color/holo_blue_dark"
android:textSize="18sp"
android:textStyle="bold" />
<EditText
android:layout_marginLeft="16dp"
android:layout_weight="1"
android:background="#FFFF00"
android:hint="Password"
android:inputType="textPassword"
android:textColor="@android:color/holo_blue_dark"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp"
android:textStyle="bold" />
</TableRow>
<TableRow android:layout_marginTop="8dp">
<TextView
android:layout_weight="1"
android:text="Security Type:"
android:textColor="@android:color/holo_blue_dark"
android:textSize="18sp"
android:textStyle="bold" />
<Spinner
android:layout_marginRight="20dp"
android:layout_weight="1"
android:textColor="@android:color/holo_green_dark"
android:textStyle="bold" />
</TableRow>
</TableLayout>
答案 1 :(得分:2)
尝试通过边距和填充来放大视图
<?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="horizontal"
android:padding="1dp"
android:weightSum="1">
<TextView
android:id="@+id/itemLabel"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.6"
android:background="#00ffff"
android:layout_margin="20dp"
android:padding="10dp"
android:gravity="center_vertical"
android:text="Settings Item: "
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@android:color/holo_blue_dark"/>
<EditText
android:id="@+id/et_item_value"
android:layout_margin="20dp"
android:layout_width="0dp"
android:padding="10dp"
android:layout_height="match_parent"
android:layout_weight="0.4"
android:background="#ffff00"
android:textColor="@android:color/holo_blue_dark"
android:textColorHint="@android:color/darker_gray"/>
</LinearLayout>
答案 2 :(得分:2)
我认为您最好的选择是使用GridLayout。你可以用
<GridLayout
....
android:columnCount="2">
如果您需要更大的EditText,可以使用
设置更多columnsCount和span<EditText
.....
android:layout_columnSpan="2"/>
答案 3 :(得分:1)
除了建议的答案,您还可以使用百分比支持库。此库由Google创建,可让您创建RelativeLayout
和FrameLayout
,并具有额外优势:定义宽度,高度和边距的百分比。要使用它,只需将以下行添加到Gradle应用程序文件中:
compile 'com.android.support:percent:23.3.0' // note that the version number
// might change due to updates
添加此依赖项后,您可以像下面这样使用它:
<android.support.percent.PercentRelativeLayout
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">
<TextView
android:id="@+id/itemLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alignParentLeft="true"
android:background="#00ffff"
android:layout_marginLeftPercent="10%"
android:gravity="center_vertical"
android:text="Settings Item: "
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@android:color/holo_blue_dark"/>
<EditText
android:id="@+id/et_item_value"
app:layout_marginRightPercent="10%"
android:alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_widthPercent="40%"
android:background="#ffff00"
android:textColor="@android:color/holo_blue_dark"
android:textColorHint="@android:color/darker_gray"/>
</android.support.percent.PercentRelativeLayout>
请注意,这只是一个示例,您可以根据需要进行修改
有关百分比支持库的详细信息,请按照此link
进行操作希望这会有所帮助:)