我有一个带有自定义背景drawable的按钮,它有圆角。看起来很正常,但当它出现在TableLayout
时,按钮的右手边缘会被切断。
这是布局XML的相关片段,它将按钮放在表格布局中:
<TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/rounded_box_nopadding" android:stretchColumns="1" android:shrinkColumns="1">
<TableRow android:padding="10dp">
<TextView android:text="@string/sign_in_email_label" android:textStyle="bold" android:textColor="#000000" android:paddingRight="10dp" />
<TextView android:text="@string/sign_in_email_hint" />
</TableRow>
<TableRow android:layout_height="1dp">
<View android:layout_width="fill_parent" android:layout_height="1dp" android:background="#dbe3e4" android:layout_span="2" />
</TableRow>
<TableRow android:padding="10dp">
<TextView android:text="@string/sign_in_password_label" android:textStyle="bold" android:textColor="#000000" android:paddingRight="10dp" />
<TextView android:text="@string/sign_in_password_hint" />
</TableRow>
<TableRow android:layout_height="1dp">
<View android:layout_width="fill_parent" android:layout_height="1dp" android:background="#dbe3e4" android:layout_span="2" />
</TableRow>
<TableRow android:padding="10dp">
<Button android:id="@+id/my_scoopons_sign_in_button" android:layout_height="wrap_content" android:text="@string/sign_in_button_label" android:textColor="@color/button_text_states"
android:textSize="20sp" android:textStyle="bold" android:shadowColor="#671610" android:shadowDy="-2" android:shadowRadius="1" android:background="@drawable/button_states"
android:layout_span="2"/>
</TableRow>
</TableLayout>
这是一个说明问题的屏幕截图。
Android screenshot http://www.petrocky.com/images/device.png
答案 0 :(得分:1)
我已设法通过删除<TableRow>
元素的填充并向<Button>
添加边距来解决此问题;即:
<TableRow>
<Button android:id="@+id/sign_in_button" android:layout_height="wrap_content" android:text="@string/sign_in_button_label"
android:background="@drawable/button_states"
android:layout_span="2" android:layout_margin="10dp" />
</TableRow>
由于按钮位于表格内,因此宽度为fill_parent
。计算父单元格的宽度以包括填充,但在渲染时它显得太长。通过在按钮上使用边距,问题就解决了。
答案 1 :(得分:0)
该按钮代码中缺少android:layout_width
。可能是原因。
答案 2 :(得分:0)
问题出在按钮layout_span中,也没有按钮的宽度
您必须设置android:layout_height="wrap_content"
,我认为删除android:layout_span="2"
我修改了你的代码。
嗨米克,
尝试使用以下代码。
<TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/rounded_box_nopadding" android:stretchColumns="1" android:shrinkColumns="1">
<TableRow android:padding="10dp">
<TextView android:text="@string/sign_in_email_label" android:textStyle="bold" android:textColor="#000000" android:paddingRight="10dp" />
<TextView android:text="@string/sign_in_email_hint" />
</TableRow>
<TableRow android:layout_height="1dp">
<View android:layout_width="fill_parent" android:layout_height="1dp" android:background="#dbe3e4" android:layout_span="2" />
</TableRow>
<TableRow android:padding="10dp">
<TextView android:text="@string/sign_in_password_label" android:textStyle="bold" android:textColor="#000000" android:paddingRight="10dp" />
<TextView android:text="@string/sign_in_password_hint" />
</TableRow>
<TableRow android:layout_height="1dp">
<View android:layout_width="fill_parent" android:layout_height="1dp" android:background="#dbe3e4" android:layout_span="2" />
</TableRow>
<TableRow android:padding="10dp">
<Button android:id="@+id/my_scoopons_sign_in_button" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/sign_in_button_label" android:textColor="@color/button_text_states"
android:textSize="20sp" android:textStyle="bold" android:shadowColor="#671610" android:shadowDy="-2" android:shadowRadius="1" android:background="@drawable/button_states"
/>
</TableRow>
</TableLayout>
由于 迪帕克