【问题标题】:Making background of a button transparent makes it unclickable使按钮的背景透明使其无法点击
【发布时间】:2013-11-15 21:34:58
【问题描述】:

我有一个按钮,它可以很好地响应点击,直到我让它透明为止。我对可能出问题的想法为零。所有其他具有透明背景的按钮都会响应点击。这是 xml,有问题的按钮是 id:door_handle:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/wall4EarthRoom"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/door_wall" >

    <Button
        android:id="@+id/hanging_walk"
        android:layout_width="80dp"
        android:layout_height="200dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="268dp"
        android:layout_marginTop="49dp"
        android:background="@android:color/transparent"
        android:clickable="false"
        android:onClick="goOut" />

    <Button
        android:id="@+id/door_handle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="279dp"
        android:layout_marginTop="136dp"
        android:onClick="openTheDoor" 
        android:background="@android:color/transparent"/>

    <Button
        android:id="@+id/peephole_doorwall"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="289dp"
        android:layout_marginTop="127dp"
        android:background="@android:color/transparent"
        android:clickable="false"
        android:onClick="zoomImage" />

    <ImageView
        android:id="@+id/queen_rabbit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>

我会重复以防万一:如果我删除 "android:background="@android:color/transparent"" 行,按钮会起作用

【问题讨论】:

    标签: android button onclick


    【解决方案1】:

    尝试为该按钮添加一些实际高度,例如 30dp,该按钮没有任何文本,因此 wrap_content 可能会使其太小。

    【讨论】:

    • 哦,我忘了说,我在游戏过程中用其中一种方法让它再次可点击。正如我所说,如果我删除透明度,它会起作用
    • 带有 android:id="@+id/door_handle" 的按钮。你把我弄糊涂了。没有任何可点击的= false。
    • 抱歉,可以尝试为该按钮添加一些实际高度,例如30dp,该按钮没有任何文字,因此wrap_content 可能会使其太小。
    • 谢谢你,伙计。改变高度和宽度有帮助。如果您编辑您的回复,我会接受!
    • @Nazerke 我修改了我的答案。
    【解决方案2】:

    如果上述答案不起作用,并且您想要快速修复,请使用透明图像,而不是透明颜色。

    【讨论】:

      【解决方案3】:

      我在 xml 中删除了 door_handle 按钮的 onClick 事件并创建了它。 它对我有用。

          btn1 = (Button)findViewById(R.id.door_handle);
          btn1.setOnClickListener(new OnClickListener() {
      
              @Override
              public void onClick(View v) {
                  Toast.makeText(getApplicationContext(), "door handle", Toast.LENGTH_SHORT).show();
      
              }
          });
      

      我使用的是 Android 4.3 - API 级别 18

      您使用的是什么目标级别?

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-22
      • 2014-02-13
      • 1970-01-01
      • 2011-05-24
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多