ome*_*ega 150 java android button
在我的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="match_parent"
android:orientation="vertical">
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
class="com.google.android.gms.maps.SupportMapFragment"/>
<Button
android:id="@+id/button_back"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="CloseActivity"
android:padding="0dp"
android:text="@+string/back" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
在预览和手机上,它看起来像:
正如你在底部区域的按钮上看到的那样,那里有一些填充物.
我怎样才能摆脱它,让按钮完全填满底部区域?
小智 383
对我来说,问题原因是一些Android主题的minHeight和minWidth.
在Button元素上,添加:
<Button android:minHeight="0dp" android:minWidth="0dp" ...
Run Code Online (Sandbox Code Playgroud)
或者按钮的样式:
<item name="android:minHeight">0dp</item>
<item name="android:minWidth">0dp</item>
Run Code Online (Sandbox Code Playgroud)
Pra*_*ddy 26
对于 MaterialButton,添加以下属性,它将完美运行
<android.support.design.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:insetTop="0dp"
android:insetBottom="0dp"/>
Run Code Online (Sandbox Code Playgroud)
Sho*_*uri 22
解决方法可能是尝试使用-ve
边距值,如下所示:
<Button
android:id="@+id/button_back"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="CloseActivity"
android:padding="0dp"
android:layout_marginLeft="-5dip"
android:layout_marginRight="-5dip"
android:layout_marginTop="-5dip"
android:layout_marginBottom="-5dip"
android:text="@string/back" />
Run Code Online (Sandbox Code Playgroud)
它会使这个空间消失.我的意思是你可以选择合适的dip
值,这样它就会消失.它对我有用.希望对你有效.
Ali*_*yan 17
删除顶部和底部填充
<com.google.android.material.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="0dp"//to effect the following parameters, this must be added!
android:insetTop="0dp"
android:insetBottom="0dp"/>
Run Code Online (Sandbox Code Playgroud)
删除左右填充
<com.google.android.material.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="0dp"//to effect the following parameters, this must be added!
android:insetLeft="0dp"
android:insetRight="0dp"/>
Run Code Online (Sandbox Code Playgroud)
Yas*_*ane 13
要删除切换按钮周围的填充,我们需要设置minWidth和minHeight 0dp.android:minWidth="0dp" android:minHeight="0dp"
<ToggleButton
android:id="@+id/toggle_row_notifications"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="0dp"
android:minHeight="0dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:padding="@dimen/_5sdp"
android:textOn=""
android:textOff=""
android:background="@android:color/transparent"
android:button="@drawable/toggle_selector"
/>
Run Code Online (Sandbox Code Playgroud)
将您的可绘制文件设置为按钮属性,如: android:button="@drawable/toggle_selector"
以下是我的toggle_selecter.xml
档案
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/notifications_toggle_on"
android:state_checked="true"/>
<item android:drawable="@drawable/notifications_toggle_off"
android:state_checked="false"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
Faw*_*aal 10
添加这些属性:
android:insetTop="0dp"
android:insetBottom="0dp"
android:minWidth="0dp"
android:minHeight="0dp"
android:padding="0dp"
Run Code Online (Sandbox Code Playgroud)
您应该在按钮中使用minHeight
和minWidth
属性,并确保使用padding
android:minHeight="0dp"
android:minWidth="0dp"
Run Code Online (Sandbox Code Playgroud)
小智 8
我的解决方案将insetTop和insetBottom属性设置为0。
<android.support.design.button.MaterialButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:insetTop="0dp"
android:insetBottom="0dp"
android:text="@string/view_video"
android:textColor="@color/white"/>
Run Code Online (Sandbox Code Playgroud)
我有同样的问题,似乎是因为按钮的背景颜色.尝试将背景颜色更改为其他颜色,例如:
android:background="@color/colorActive"
Run Code Online (Sandbox Code Playgroud)
看看它是否有效 如果要使用该按钮,则可以定义样式.
这不是填充,而是背景可绘制的阴影或 and 的minHeight
问题minWidth
。
如果您仍然想要漂亮的波纹效果,您可以使用以下命令创建自己的按钮样式?attr/selectableItemBackground
:
<style name="Widget.AppTheme.MyCustomButton" parent="Widget.AppCompat.Button.Borderless">
<item name="android:minHeight">0dp</item>
<item name="android:minWidth">0dp</item>
<item name="android:layout_height">48dp</item>
<item name="android:background">?attr/selectableItemBackground</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并将其应用到按钮上:
<Button
style="@style/Widget.AppTheme.MyCustomButton"
... />
Run Code Online (Sandbox Code Playgroud)