> For the complete documentation index, see [llms.txt](https://docs.lawnchair.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.lawnchair.app/troubleshooting/gesture-navigation-issues.md).

# Gesture navigation issues

Smooth gesture navigation is a big part of a good launcher experience.

On Android, results with third-party launchers can vary a lot by device, Android version, and OEM software.

{% hint style="info" %}
Gesture navigation on this page means *system navigation gestures*, not Lawnchair gestures under **Home settings** > **Gestures**.
{% endhint %}

### How does gesture navigation work?

Android gives the system launcher special privileges for handling home and Recents animations.

When you switch to a third-party launcher, those integrations may be less reliable.

### Common issues you might encounter

* Some OEMs, such as Xiaomi, block gesture navigation on custom launchers entirely
* Icons or widgets not responding for a short time after going home
* Home screen content flashing or disappearing when you tap icons too quickly after swiping home
* Home animations feeling choppy or not running at all
* App opening animations failing when you launch an app right after swiping home
* A short delay before the home screen content appears when swiping home
  * Oppo, OnePlus, and Realme introduced this issue on Android 14, but it can also appear elsewhere.

You may see some of these issues, all of them, or none of them.

### Options for improving gesture navigation

Many of these issues come from Android or OEM limits rather than Lawnchair itself. Here are the main ways to improve the experience.

#### For non-rooted users

On Android 11 and later, Lawnchair uses Google's `GestureNavContract` API to improve animations on non-rooted devices.

How well this works depends entirely on your device manufacturer.

* Devices close to stock Android, such as Pixel, Nothing, and AOSP-based ROMs, usually work better.
* Devices with heavily customized software, such as Samsung, Xiaomi, and OnePlus/Oppo, may still have major issues.

<details>

<summary>Icons are getting stuck on the screen after closing an app</summary>

A common bug causes an app icon to get stuck on screen after you close an app.

Google fixed this in Android 13, but some OEMs reintroduced it by modifying the API.

If this happens:

1. Long press on the home screen, then tap **Home settings**.
2. On the screen that appears, tap **More** <i class="fa-ellipsis-vertical">:ellipsis-vertical:</i>.
3. Tap <i class="fa-flask">:flask:</i> **Experimental features**.
4. Turn off **Use GestureNavContract API**.

</details>

#### For rooted users

If your device is rooted, the **QuickSwitch Magisk module** is usually the most effective option.

QuickSwitch allows Lawnchair to integrate as the system's Recents provider. This provides a more consistent animation experience.

See [QuickSwitch](/integrations/quickswitch.md) for setup details.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.lawnchair.app/troubleshooting/gesture-navigation-issues.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
