Android - 如何从你的应用程序活动中移除标题栏

349 阅读1分钟

有三种简单的方法可以从你的Android应用程序中移除标题栏/动作栏。

  • res/styles.xml 文件内设置<style> 标签parent 属性值
  • 使用getSupportActionBar().hide() 方法从活动class 隐藏动作栏

让我们先来学习如何改变styles.xml 文件

从主主题文件中删除安卓标题栏

要从你的安卓应用程序中移除标题栏/动作栏,你可以将应用程序中的<style> 标签设置为NoActionBar

当你使用Android Studio创建一个新的Android应用程序时,你的应用程序的<style> 标签通常在Project -> app -> src -> main -> res -> values -> styles.xmlthemes.xml ,这取决于你的Android Studio版本。

XML文件的内容看起来与此类似:

<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.NoBar"
 parent="Theme.MaterialComponents.DayNight.DarkActionBar">
 <!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
</resources>

你只需要在上面代码的第4行将动作栏从DarkActionBar 改为NoActionBar

<style name="Theme.NoBar"
 parent="Theme.MaterialComponents.DayNight.NoActionBar">

此外,你也可以将values-night 文件夹放在res 文件夹内,如下图所示:

Android values-night folder for the Dark Theme

深色主题的安卓值-夜的文件夹

values-night 文件夹包含另一个theme.xml ,当用户使用黑暗主题时,你的安卓应用将使用这个文件夹。

你可能还想把这个theme.xml 中的<style> 标签的parent 属性设置为NoActionBar ,以使你的应用程序一致。

<style> 标签设置为使用NoActionBar 将从你的应用程序内的所有活动中移除标题栏。

从特定的活动中移除Android标题栏

当你想移除某个特定活动的标题栏时,你需要从活动class 文件中隐藏标题栏。

例如,下面是你如何从你的MainActivity 类中删除标题栏:

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
 getSupportActionBar().hide();
 setContentView(R.layout.activity_main);
}
}

注意,只有当你的class 扩展到AppCompatActivity 时,getSupportActionBar() 才可用。如果你正在扩展Activity 类,你需要调用getActionBar() 方法来代替:

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
 getActionBar().hide();
 setContentView(R.layout.activity_main);
}
}

如果你使用的是Kotlin,那么就按如下方法设置调用supportActionBaractionBar

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
 supportActionBar?.hide()
 setContentView(R.layout.activity_main)
}
}

这就是你如何从你的Android应用程序中移除标题栏的方法 😉