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
。
- 图片太小了
- 您可以使用工具栏代替自定义操作栏。您可以拨打:
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();
}
}); }
}
我只是使用 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
。
- 图片太小了
- 您可以使用工具栏代替自定义操作栏。您可以拨打:
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();
}
}); }
}