a15 展讯Launcher 默认无抽屉模式

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

设置 Android Launcher 默认无抽屉模式

在定制 Android 系统时,我们经常需要调整 Launcher (桌面启动器) 的默认行为。其中一个常见的需求就是将默认的桌面风格设置为“无抽屉模式”(也称为单层模式),即所有应用图标都直接排列在主屏幕上,而不是隐藏在一个单独的应用抽屉里。本文将介绍如何通过修改配置文件来实现这一默认设置。

核心配置文件:config_ext.xml

Launcher 的许多扩展功能和默认值通常定义在一个特定的 XML 配置文件中。在这个例子中,相关的配置文件是 vendor/sprd/platform/packages/apps/Launcher3/res_unisoc/values/config_ext.xml。

要设置默认的桌面模式,我们需要关注该文件中的一个关键字符串资源:default_home_screen_style。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- ... 其他配置项 ... -->

    <!-- 控制是否在设置中显示桌面风格切换选项 -->
    <bool name="show_home_screen_style_settings">true</bool>

    <!-- 关键:设置默认的桌面风格 -->
    <!-- 可选值: "dual" (双层/有抽屉模式), "single" (单层/无抽屉模式) -->
    <string name="default_home_screen_style" translatable="false">single</string>

    <!-- ... 其他配置项 ... -->
</resources>
  • default_home_screen_style: 这个配置项直接决定了 Launcher 首次启动或恢复出厂设置后的默认模式。
  • 将其值设置为 "single" 即可实现默认 无抽屉模式。
  • 如果想默认使用带应用抽屉的模式,则应将其值设置为 "dual"。

因此,要将默认模式设为无抽屉,只需确保 config_ext.xml 中 default_home_screen_style 的值是 single 即可

 

用户切换界面:MultiModeSettingActivity.java

虽然 config_ext.xml 设置了 默认值,但系统通常还会提供一个设置界面,让用户可以 手动切换 桌面模式。在这个例子中,MultiModeSettingActivity.java 就是负责这个功能的 Activity。

这个 Activity 的作用是读取当前的设置和默认设置,向用户展示选项,并在用户做出选择后保存新的偏好设置,然后重启 Launcher 以应用更改。

 

package com.unisoc.launcher3.multimode.settings;

import android.app.Activity;
import android.os.Bundle;
// ... 其他 import ...
import com.unisoc.launcher3.multimode.MultiModeUtilities;

public class MultiModeSettingActivity extends Activity implements View.OnClickListener {

    // ... 其他成员变量 ...
    String mDefaultMode; // 用于存储从 config_ext.xml 读取的默认模式
    String mCurMode;     // 用于存储用户当前选择的模式

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_multi_mode_setting);
        // ... 初始化视图 ...

        // 关键:读取 config_ext.xml 中定义的默认模式值
        mDefaultMode = getResources().getString(R.string.default_home_screen_style); 
        // 读取用户当前保存的模式值
        mCurMode = MultiModeUtilities.getHomeScreenStylePrefValue(this); 

        // 根据读取到的默认值和当前值,初始化界面选项状态
        if (MultiModeUtilities.SINGLE.equals(mDefaultMode)) { 
            // 如果默认是 single (无抽屉) ... 初始化选项
        } else {
            // 如果默认是 dual (有抽屉) ... 初始化选项
        }
        // ...
    }

    @Override
    public void onClick(View view) {
        // ... 处理用户点击事件 ...
        String newModel = (String) view.getTag(); // 获取用户选择的新模式
        // ... 更新界面选中状态 ...

        if (!mCurMode.equals(newModel)) {
            // ... (省略了延迟和错误处理) ...
            
            // 关键:保存用户选择的新模式到偏好设置中
            MultiModeController.syncSaveNewModel(this, newModel); 
            
            // ... 重启 Launcher 使设置生效 ...
            UtilitiesExt.exitLauncher(MultiModeSettingActivity.this);
        }
    }
}

可以看到,MultiModeSettingActivity 在 onCreate 时会通过 getResources().getString(R.string.default_home_screen_style) 读取 config_ext.xml 中设置的默认值,但它的主要职责是响应用户的交互,并将用户的选择持久化,覆盖掉默认设置

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值