Android13 控制设置界面 双栏显示或单栏显示

Android 13 设置界面会判断当前屏幕的大小,如果是大屏,则为双栏显示!
我的博客

复制代码
./packages/apps/Settings/src/com/android/settings/homepage/SettingsHomepageActivity.java

      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
  
          mIsEmbeddingActivityEnabled = ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this);//这里来进行判断
          if (mIsEmbeddingActivityEnabled) {
              final UserManager um = getSystemService(UserManager.class);
              final UserInfo userInfo = um.getUserInfo(getUser().getIdentifier());
              if (userInfo.isManagedProfile()) {
                  final Intent intent = new Intent(getIntent())
                          .setClass(this, DeepLinkHomepageActivityInternal.class)
                          .addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT)
                          .putExtra(EXTRA_USER_HANDLE, getUser());
                  intent.removeFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                  startActivityAsUser(intent, um.getPrimaryUser().getUserHandle());
                  finish();
                  return;
              }
          }
  
          setupEdgeToEdge();
          setContentView(R.layout.settings_homepage_container);
          ...
          
          
/packages/apps/Settings/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java
/** Whether to support embedding activity feature. */
public static boolean isEmbeddingActivityEnabled(Context context) {
    //update text
    final boolean isFlagEnabled = false;//FeatureFlagUtils.isEnabled(context,FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN);
    final boolean isSplitSupported = SplitController.getInstance().isSplitSupported();
  
    Log.d(TAG, "isFlagEnabled = " + isFlagEnabled);
    Log.d(TAG, "isSplitSupported = " + isSplitSupported);
  
    return isFlagEnabled && isSplitSupported;
}

//当isFlagEnabled和isSplitSupported都为true时为双栏显示,反之则单栏,&&表示可以只修改其中一个为false就ok了
相关推荐
好的佩奇8 小时前
蓝牙之广播与扫描
android·flutter·蓝牙
传奇开心果编程10 小时前
【Jetpack Compose娓娓道来】第36课:焦点管理与键盘输入——让遥控器、键盘和输入法都“找得到北”
android·kotlin·移动开发·交互·android jetpack·ui框架·声明式ui
hai_android11 小时前
AudioTrack 深度解析:从原理到实战
android·java·kotlin
红尘伴蝶舞11 小时前
从秒开优化到连环崩溃:深入剖析 ViewPager2 在常驻 DialogFragment 中的复用陷阱与自愈方案
android·kotlin
巫山老妖16 小时前
Android 应用架构演进:MVC / MVP / MVVM / MVI (2026)
android·android jetpack
木头左20 小时前
【架构设计】教育类 App 服务端化改造:AI 上移、题库分层与个人题库归属
android·架构设计·系统设计·后端开发·数据库设计
墨狂之逸才20 小时前
USB 的 HOST 和 DEVICE 到底有什么区别?ADB 调试应该选哪个?
android
奶油话梅糖21 小时前
苹果的内核跑上了安卓手机:2,631 Star 的 HakiOS 让 XNU 在 Adreno GPU 上画出 118 帧
android·macos·智能手机
恋猫de小郭21 小时前
Flutter THLC 的 WebView 滚动终于从 70 FPS 提升到 120 FPS
android·前端·flutter
好的佩奇1 天前
Dart 之扩展类型
android·flutter·dart