我正在尝试在Android的ActionBar上做一些事情。
我已经在操作栏的右侧添加了新项目。
如何更改操作栏的左侧?我想更改图标和文本,并且要在其他屏幕的操作栏中添加“后退按钮”
我正在尝试在Android的ActionBar上做一些事情。
我已经在操作栏的右侧添加了新项目。
如何更改操作栏的左侧?我想更改图标和文本,并且要在其他屏幕的操作栏中添加“后退按钮”
Answers:
这很容易完成
如果要在代码中进行更改,请致电:
setTitle("My new title");
getActionBar().setIcon(R.drawable.my_icon);
并将值设置为任意值。
或者,在Android清单XML文件中:
<activity android:name=".MyActivity"
android:icon="@drawable/my_icon"
android:label="My new title" />
要在您的应用中启用后退按钮,请使用:
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
代码都应该放在您的代码中,onCreate
以便标签/图标更改对用户是透明的,但实际上,可以在活动的生命周期中的任何位置调用它。
getActionBar().setHomeButtonEnabled(true)
使用API级别14或更高版本,如果您只想使用旧版本和较新版本的API所需的后退按钮功能getActionBar().setDisplayHomeAsUpEnabled(true)
supportActionBar?.setDisplayShowTitleEnabled(true)
然后supportActionBar?.title = "your title"
。并且onResume
在onCreate
使用创建活动时必须在而不是在里面完成startActivity
。
要使单个图标可用于所有操作栏,可以在Android清单中执行此操作。
<application
android:logo="@drawable/Image">
...
</application>
pre-loads
是图标,以编程方式设置图标很慢!
您只需要添加这三行代码。用您自己的图标替换图标。如果要生成图标,请使用此
getSupportActionBar().setHomeAsUpIndicator(R.drawable.icon_back_arrow);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
您可以通过将所需的任意图标添加到各自的可绘制文件夹中,然后在AndroidManifest.xml文件中更改此行来更改您的图标:
android:icon="@drawable/ic_launcher"
匹配其中的图标名称。或将您的图标设为ic_launcher(如果它们是同一图标)。至于说什么,添加或更改与res / values / strings.xml文件中的字符串匹配的任何字符串。然后,再次在您的AndroidManifest.xml文件中,更改以下行:
android:label="@string/app_name"
不管你在他们的字符串。您必须对整个应用程序以及您想要进行的任何活动进行此操作,但是这些行是相同的。
希望这可以帮助。
android:icon
活动代码应为多大(dp) ?
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle(getString(R.string.titolo));
actionBar.setIcon(R.mipmap.ic_launcher);
actionBar.setDisplayShowHomeEnabled(true);
为此,您可以通过两种方式来实现:XML或Java。请参阅此处:如何更改操作栏上的文本
所以:
XML:
<activity android:name=".Hello_World"
android:label="This is the Hello World Application">
</activity>
Java:
public class TitleBar extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
if ( customTitleSupported ) {
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);
}
final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
if ( myTitleText != null ) {
myTitleText.setText("NEW TITLE");
// user can also set color using "Color" and then "Color value constant"
// myTitleText.setBackgroundColor(Color.GREEN);
}
}
}
setTitle(CharSequence text)
或setTitle(int titleRes)
。requestWindowFeature(Window.FEATURE_CUSTOM_TITLE)
除非您打算用自己的自定义视图替换整个标题栏,否则不要使用。
在您的活动的onCreate函数内添加以下代码。
setTitle("NewName");
默认情况下,操作栏标题将使用当前活动的标签,但是您也可以通过编程设置它ActionBar.setTitle()
。
要实现您正在谈论的“后退”(更确切地说是“向上”)按钮功能,请阅读《Action Bar开发人员指南》中的“使用应用程序图标进行导航”部分。
最后,要更改图标,该指南也将进行介绍。简而言之,操作栏将显示android:icon
清单application
或activity
元素中提供的图像(如果有的话)。典型的做法是创建一个名为的应用程序图标(具有各种密度)ic_launcher.png
,并将其放置在drawable-*
目录中。
转到清单中您要更改的特定活动动作栏标题名称并输入android:label =“ Title name”
转到AndroidManifest.xml文件。查找<application>
标签在那里您可以看到一个属性
android:label="@string/app_name"
现在转到res> values> strings.xml
改变
<string name="app_name">MainActivity</string>
至
<string name="app_name">Your Desired Name</string>
例
AndroidManifest.xml
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SubmitForm">
</activity>
</application>
strings.xml
<resources>
<string name="app_name">Your Desired Name</string>
<string name="action_settings">Settings</string>
</resources>
您还可以执行以下操作:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
setSupportActionBar(toolbar)
setTitle("Activity 2")
}
getSupportActionBar
代替getActionBar
。