【发布时间】:2013-09-29 11:38:57
【问题描述】:
按钮对快速点击做出奇怪的反应(点击只应该更改按钮内的文本):它会调整大小,变大,即使文本非常小。
如果我点击它,并停留半秒,然后移开手指,则 minWidth 属性受到尊重。
我可以通过“长按”恢复原始大小,并通过“短按”放大。每次都有效。
我无法在 4.0+ 上重现此问题(但我没有尝试过),并且似乎总是在 2.3.X 设备上发生(我在 HTC Desire S 和 2.3.5 和 Galaxy S2 上尝试过) 2.3.6)。
以下是该按钮相关的xml代码:
<Button
android:id="@+id/header_left_button"
android:layout_width="wrap_content"
android:layout_height="@dimen/very_small_item_height"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="10dip"
android:background="@drawable/btn_nav_background"
android:minWidth="70dip"
android:paddingLeft="5dip"
android:paddingRight="5dip"
android:textColor="#FFFFFF"
android:textSize="9sp"
android:visibility="gone" />
还有 OnClick 监听器:
mBtnTextHeaderLeft.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mBtnTextHeaderLeft.setText("OK");
});
有什么想法吗?
编辑:
选择器是这样定义的:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/btn_map_bottom_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/btn_map_bottom_normal" android:state_enabled="true"/>
</selector>
编辑 2: 以下是按钮两种状态的截图(抱歉我没有足够的声望直接添加图片...):
normal size(当按钮还没有被点击时,或者如果我“慢慢地”点击它)
bugged size(“快速”点击按钮时)
【问题讨论】:
-
可见性设置为消失。它将不可见。
-
我应该提到按钮在 OnCreate() 上可见。当用户点击它时它是可见的。
-
另外请注意,如果我删除
android:background="@drawable/btn_nav_background",它是多个 9 补丁之间的选择器,按钮不会调整大小。 -
选择状态资源有哪些?
-
@HannahMitt 查看编辑 :)
标签: android android-layout android-button