ImageView 的 onClickListener() 有时会丢失

onClickListener() misses sometimes for ImageView

我只是使用 PNG 图像作为 ImageView 中的来源,并想添加一个 onClickListener()。问题是按钮的 onClick() 不能顺利触发,这意味着当我点击图像时,有时它工作正常,有时它不起作用。甚至我在 ImageView 周围添加了一些填充以增加可点击区域。我也尝试用 ImageButton 替换 ImageView 但没有成功。这也是同样的行为方式。 这是我的代码:

ImageView back = (ImageView) findViewById(R.id.back);
back.setOnClickListener(new View.OnClickListener() 
{
   public void onClick(final View v) 
   {
     finish() 
   } 
});

XML 按钮:

<ImageView
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:padding="10dp"
android:src="@drawable/btn_back"/>

请注意,我在自定义操作栏中使用此 ImageView

  1. 图片太小了
  2. 您可以使用工具栏代替自定义操作栏。您可以拨打:getSupportActionBar().setDisplayHomeAsUpEnabled(true);

您的图片尺寸已经太小了,24dp 同时您还为其添加了额外的填充 10dp 这会导致图片变小,因此无法正确获得点击。 尝试删除填充并在可能的情况下使用 margin

<ImageView
    android:id="@+id/back"
    android:layout_width="24dp"
    android:layout_height="24dp"
    android:scaleType="fitCenter"
    android:src="@drawable/btn_back"/>

或者您可以添加一个容器布局,它可以环绕 `ImageView`` 并为其提供点击监听器。

没有代码就不可能找到你的问题,因为它在任何情况下都不会发生,你可以通过删除填充来检查,否则我在这个 xml

中没有看到任何问题

XML布局

 <ImageView android:id="@+id/back"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_gravity="center"
            app:srcCompat="@drawable/ic_close_black_24dp" />

这里是class

public class About_us extends AppCompatActivity {

    ImageView back;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.contact);

        back = (ImageView) findViewById(R.id.back);

        back.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(final View v)
            {
                finish();
            }
        });  }

}