我有一个主题为@style/Theme.AppCompat.NoActionBar.Translucent
由于此Activity
完全透明,因此用户不知道Activity
存在。因此,当用户按下后退按钮时,默认行为应该是用户最后一次Activity
,应该采取后退按钮事件。
但是在这里,当半透明活动位于顶部时,它会占用该事件,并且用户看起来后退按钮在第一次尝试时不起作用。有没有办法可以在onBackPressed()
之后几毫秒发送一个返回键事件,或者我可以设置我的Activity
根本不听重要事件?有一些像FLAG_NOT_TOUCHABLE
这样的标志告诉应用程序不想被触摸,但这对我的后退按钮不起作用。
请不要建议我使用Service
,因为我绝对有必要使用Activity
,它也应该是透明的。
答案 0 :(得分:0)
您可以使用Books$title <- c("To kill a mockingbird", "Harry Potter and the order of the phoenix", "Of mice and men (something something)")
Book$year <- c("1960", "2003", "1937")
title year
To kill a mockingbird 1960
Harry Potter and the order of the phoenix 2003
Of mice and men (something something) 1937
启动半透明活动,然后覆盖半透明活动中的startActivityForResult()
功能。所以你可以继续这样做。
在您的MainActivity或调用活动中,启动这样的半透明活动。
onBackPressed
并像这样覆盖private static final int TRANSLUCENT_ACTIVITY = 101;
Intent intent = new Intent(getActivity(), YourTranslucentActivity.class);
startActivityForResult(intent, TRANSLUCENT_ACTIVITY);
。
onActivityResult
现在在半透明活动中,您需要像这样覆盖@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK && requestCode == RETURNED_FROM_TRANSLUCENT_ACTIVITY) {
// Call the backPressed function in your calling Activity
super.onBackPressed();
}
}
。
onBackPressed
因此,诀窍不是避免使用后退功能,而是采用另一种方式来完全按照您的预期行事。
希望有所帮助。