我正在尝试GridLayout
使用Android Studio 1.5在Android中创建布局。初始的xml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:useDefaultMargins="true"
android:alignmentMode="alignBounds"
android:columnOrderPreserved="false"
android:columnCount="10"
android:background="#cccccc"
>
<TextView
android:text="Title"
android:textSize="32dip"
android:layout_columnSpan="10"
android:layout_gravity="center_horizontal"
android:id="@+id/textView1"
android:layout_row="0"
android:layout_column="0" />
<TextView
android:text="@string/new_name"
android:layout_gravity="right"
android:layout_row="2"
android:layout_column="0"
/>
<EditText
android:ems="6"
android:singleLine="true"
android:inputType="textCapWords"
android:id="@+id/new_name"
android:layout_row="2"
android:layout_column="1" />
<ImageButton
android:src="@mipmap/ic_backspace_black_24dp"
android:id="@+id/clear_line"
android:layout_row="2"
android:layout_column="8"
/>
<Button
android:text="Search"
android:id="@+id/new_search"
android:background="@color/colorPrimaryDark"
android:layout_column="9"
android:layout_row="2" />
<TextView
android:text="@string/new_label"
android:layout_gravity="right"
android:layout_row="3"
android:layout_column="0" />
<EditText
android:ems="6"
android:singleLine="true"
android:inputType="textCapWords"
android:id="@+id/new_label"
android:layout_row="3"
android:layout_column="1" />
______
<TextView
android:layout_column="0"
android:text="Row3"
android:layout_gravity="right"
/>
<EditText
android:ems="7"
android:singleLine="true"
android:id="@+id/Row3"
android:inputType="numberDecimal"
android:layout_row="4"
android:layout_column="1" />
<TextView
android:layout_column="0"
android:text="Row4"
android:layout_gravity="right"
android:layout_row="5" />
<EditText
android:ems="7"
android:singleLine="true"
android:id="@+id/Row5"
android:inputType="number"
android:layout_row="5"
android:layout_column="1" />
<Space
android:layout_row="4"
android:layout_column="0"
android:layout_columnSpan="3"
android:layout_gravity="fill"
/>
<Button
android:text="Cancel"
android:id="@+id/new_cancel"
android:background="@color/colorPrimaryDark"
android:layout_row="10"
android:layout_column="0"
/>
<Button
android:text="Ok"
android:id="@+id/new_ok"
android:background="@color/colorPrimaryLight"
android:layout_row="10"
android:layout_column="9"
/>
</GridLayout>
,在预览中,呈现如下:
但是,在我的手机上,我看到退格区与“&#39;名称&#39;”的文字输入框略有重叠。这是我的手机还是Android Studio的问题?
我更改了第一个输入框的布局,如下所示:
<EditText android:singleLine="true" android:inputType="textCapWords" android:id="@+id/new_name" android:columnCount="4" android:layout_row="2" android:layout_column="1" />
虽然我指定了columnCount="4"
,但实际输入框非常小。这个属性似乎没有任何影响:
<ImageButton android:src="@mipmap/ic_backspace_black_24dp" android:id="@+id/clear_line" android:layout_row="2" android:layout_column="8" android:minHeight=4 android:minWidth=4 android:maxHeight=4 android:maxWidth=4 />
但它不会改变退格图像的大小。我也可以将数字设置为paranthesis,这会触发错误:
`Cannot resolve symbol '4'`
其他所有数字都可以放入parantheses,但不是吗?
那有什么逻辑吗?或者在创建android框架时人们是否关闭了逻辑?有人可以用parantheses解释我的事吗?以及如何更改退格图像的大小?我查看了ImageButton doc,但找不到任何逻辑属性,例如&#39; size&#39; ...!
答案 0 :(得分:1)
在您的情况下,我看不出使用GridLayout
的原因,无论如何,这里是您的问题的答案:
1# - 在手机中,您会看到退格区与“名称”EditText
重叠,因为没有足够的宽度可以在另一个旁边绘制4个视图
2# - 无需android:columnCount属性:
自动创建的最大列数 定位儿童。
这就是它没有做任何事情的原因。
3# - 当您尝试使用此代码时:
<ImageButton
android:src="@mipmap/ic_backspace_black_24dp"
android:id="@+id/clear_line"
android:layout_row="2"
android:layout_column="8"
android:minHeight=4
android:minWidth=4
android:maxHeight=4
android:maxWidth=4/>
您收到Cannot resolve symbol '4'
错误,因为:
4
必须介于两个"
之间。dp
,px
,sp
...)。应该是这样的:
<ImageButton
android:src="@mipmap/ic_backspace_black_24dp"
android:id="@+id/clear_line"
android:layout_row="2"
android:layout_column="8"
android:minHeight="15dp"
android:minWidth="15dp"
android:maxHeight="15dp"
android:maxWidth="15dp"/> <!-- i used 15dp instead of 4dp because 4dp is too small -->
4# - 要更改View
(案例中为Button
)的大小,您可以使用android:layout_width
和android:layout_height
属性:
<ImageButton
android:layout_width="12dp"
android:layout_height="12dp"
android:src="@mipmap/ic_backspace_black_24dp"
android:id="@+id/clear_line"
android:layout_row="2"
android:layout_column="8"/>