If you’re using Hotwire Native for Android and want to remove the default title bar (action bar) for a more immersive UI, the solution is straightforward: create your own custom layout that doesn’t include a title bar.
Step 1: Create a Custom Layout
Create a file named hotwire_fragment_web.xml in your res/layout directory with the following content:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
layout="@layout/hotwire_view"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Key Points:
- No
<Toolbar>,<AppBarLayout>, or other app bars are present in this layout. - The included
@layout/hotwire_viewfills the screen between the parent’s top and bottom.
Step 2: Use Your Custom Layout
Ensure your Hotwire fragment or activity uses hotwire_fragment_web.xml as its layout:
package com.example.myapplication // update to match your project
import android.os.Bundle
import android.view.View
import androidx.activity.enableEdgeToEdge
import dev.hotwire.navigation.activities.HotwireActivity
import dev.hotwire.navigation.navigator.NavigatorConfiguration
import dev.hotwire.navigation.util.applyDefaultImeWindowInsets
class MainActivity : HotwireActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
findViewById<View>(R.id.main_nav_host).applyDefaultImeWindowInsets()
}
override fun navigatorConfigurations() = listOf(
NavigatorConfiguration(
name = "main",
startLocation = "https://hotwire-native-demo.dev",
navigatorHostId = R.id.main_nav_host
)
That’s it! No need to modify themes or hide the action bar in code. By using a minimal layout, the title bar is gone, and you have full control over the screen’s content.
Tip:
If you ever want to add your own custom toolbar, just add it to this layout above the included hotwire_view and adjust the constraints accordingly.
