iam遵循Android开发者网站上的基本初学者教程。现在,我将介绍如何将应用程序图标作为向上按钮(参见上一篇文章):http://developer.android.com/training/basics/actionbar/adding-buttons.html#UpNav
我把“getSupportActionBar()。setDisplayHomeAsUpEnabled(true);”在我的活动onCreate()方法,但在我的设备上我的应用程序没有应用程序图标作为按钮。这是我的活动
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
和
public class DisplayMessageActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// Get the message from the intent
Intent intent = this.getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
// Create the text view
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
// Set the text view as the activity layout
setContentView(textView);
}
还有我的清单
<?xml version="1.0" encoding="utf-8"?>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName=".MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.andreas.myapplication.MainActivity" />
</activity>
</application>
Gradle Infos
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.example.andreas.myapplication"
minSdkVersion 8
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
我很困惑,因为我已经使用了正确的方法来实现minSdkVersion 8。
有谁知道,为什么ma App不会将Icon显示为Up-Button?
最好的问候
答案 0 :(得分:3)
我遇到了同样的问题 - 启用“将主页显示为向上”导致向上按钮上显示箭头图像。我已设法使用应用程序图标替换箭头,步骤如下:
ImageAsset
中的应用图标图片创建新的/drawable
。在OnCreate()
子活动中,添加2行:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_home);
答案 1 :(得分:3)
为 android:value =“替换元数据值 android:value =”com.example.andreas.myapplication.MainActivity“。
要支持具有支持库的旧设备,还要包含一个元素,该元素将父活动指定为android.support.PARENT_ACTIVITY的值,如下所示:
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
答案 2 :(得分:0)
我认为您需要在第二项活动中致电getSupportActionBar().setDisplayHomeAsUpEnabled(true);
后致电setContentView(textView);
。
修改强>
另外,主要活动不应该调用getSupportActionBar().setDisplayHomeAsUpEnabled(true);
,因为它无处可去。您应该添加一个按钮来切换活动,否则您将无法访问DisplayMessageActivity。尝试这样的事情:
Intent showmessg = new Intent(getApplicationContext(), DisplayMessageActivity.class);
startActivity(showmessg);
希望它适合你。
来源:http://developer.android.com/training/basics/actionbar/adding-buttons.html#UpNav
答案 3 :(得分:0)
我认为在android 5和API 21中我们无法使用app图标进行操作 如果您的appcompat支持库是v7 rev21,我认为您至少不能使用应用程序图标来执行操作。但你可以使用它而不是左上角的插入符号,或者你可以使用该插入符号的右侧的应用程序图标,但如果你点击它没有任何事情发生。
我有两个应用程序完全像我在其中一个培训中使用较旧的appcompat v7和minSdkVersion =“11”并且我从未添加getSupportActionBar().setDisplayHomeAsUpEnabled(true);
它但应用程序有应用程序图标,没有问题。但在另一个应用程序我几天前更新我的支持库到rev21,当然这个应用程序的minSdkVersion是“8”但这个应用程序没有actionBar图标为Up动作,如果你添加顶级代码,你什么都不做。
我搜索了很多网站,据我所知,在材料设计方面谷歌删除了应用程序图标,因为行动栏上的空间增加等等。
您可以在this page中看到此行。
“使用Material主题时(默认情况下在API 21或更新版本中) 导航按钮(以前称为“Home”)先前占据了空间 由应用程序图标占用。希望表达更强大的应用 品牌应该在动作栏中大量使用他们的品牌颜色 其他应用程序chrome或使用替代他们的标准标题 文本“。