gpt4 book ai didi

android - 操作栏 setDisplayHomeAsUpEnabled 关闭应用程序

转载 作者:行者123 更新时间:2023-11-29 01:44:59 27 4
gpt4 key购买 nike

我的应用程序使用 android.support.v7.app.ActionBar 以便我可以在我的 Android 2.3.4 手机和使用 Android 4.4.2 的平板电脑上使用 Action Bar。我已将我的最小和目标 SDK 设置为 10 和 18。当我单击调用 setDisplayHomeAsUpEnabled(true) 的操作栏上的后退按钮时,它在 2.3.4 手机上正常工作并返回到名为 Main_Interface 的 Home Activity。但是,当我单击平板电脑操作栏上的后退按钮时,它会关闭应用程序,就像我单击平板电脑上的后退按钮一样。 LogCat 中没有出现任何内容,因此它的行为就好像它应该在单击操作栏 setDisplayHomeAsUpEnabled() 按钮时关闭应用程序一样。这是 Activity 在 list 中的样子:

<activity
android:name=".UILNPPager"
android:configChanges="orientation|screenSize"
android:label="UILNPPager"
android:parentActivityName="com.myapp.ktg.Main_Interface"
android:theme="@style/Theme.Blu_uilpager" >
<intent-filter>
<action android:name="com.myapp.ktg.UILNPPAGER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.myapp.ktg.Main_Interface" />
</activity>

这是除 ActionBar 调用之外的所有内容的 Activity:

    import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;

public class UILNPPager extends ActionBarActivity {
private static final String STATE_POSITION = "STATE_POSITION";
DisplayImageOptions options;
ViewPager pager;
String[] imTitlesStr;
String[] imMediumStr;
String[] imPriceStr;
String[] imageUrls;
int pagerPosition;
PhotoViewAttacher mAttacher;

ActionBar mActionbar;

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.actionbar_uilpager);

//--- ViewPager stuff
....
//--- END ViewPager stuff

/** Getting a reference to action bar of this activity */
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main_actions, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}

}

我尝试从 list 中取出调用 android:parentActivityName="com.myapp.ktg.Main_Interface" ,但这没有效果。它在 2.3.4 手机上仍然可以正常工作,但不能在 4.4.2 平板电脑上工作。

知道为什么它不能在平板电脑上正常工作吗?

最佳答案

请使用 AppCompat 主题或继承其中之一的主题。例如:

  1. @style/ThemeAppCompat
  2. @style/ThemeAppCompat.Light
  3. @style/ThemeAppCompat.Light.DarkActionBar

我注意到您正在使用自己的样式主题,您可以从 AppCompat 主题之一继承主题,如下所示。

<style name="Theme.Blu_uilpager"
parent="@style/ThemeAppCompat.Light">
....
</style>

引自Android官方教程,https://developer.android.com/training/basics/actionbar/styling.html

Note: If you are using the Support Library APIs for the action bar, then you must use (or override) the Theme.AppCompat family of styles (rather than the Theme.Holo family, available in API level 11 and higher). In doing so, each style property that you declare must be declared twice: once using the platform's style properties (the android: properties) and once using the style properties included in the Support Library (the appcompat.R.attr properties—the context for these properties is actually your app). See the examples below for details.

关于android - 操作栏 setDisplayHomeAsUpEnabled 关闭应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21993830/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com