QMUI 学习一: 入门,如何添加QMUI框架到 android项目 ,并引入QMUI的主题Theme:

2023-11-14

 

用是最新的Android Studio 3.6.x的,下了新的QMUI Demo参考学习UI。

先上效果图:

如何添加QMUI框架并引用它的主题:

1. 添加框架: 在app.gradle里面添加依赖: implementation 'com.qmuiteam:qmui:2.0.0-alpha08'

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    testImplementation  project(path: ':FastBleLib')
    implementation 'com.qmuiteam:qmui:2.0.0-alpha08'
}

修改引用的主题2个方法:

方法一:去改AndroidMainfest.xml 

2.修改AndroidMainfest.xml主题: android:theme="@style/QMUI.Compat",同时在activity里也设置了theme:

 <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/QMUI.Compat">

 <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/QMUI.Compat">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/QMUI.Compat">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
</application>

方法二:修改style.xml的AppTheme主题,将parent指向QMUI.Compat

3. 修改style.xml主题:

<style name="AppTheme" parent="QMUI.Compat">

<!-- 重写系统 或者 QMUI 提供的 attr --> </style>

 

将以上的Theme修改:style name="AppTheme" parent="QMUI.Compat.NoActionBar":

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="QMUI.Compat.NoActionBar">
<!--        &lt;!&ndash; Customize your theme here. &ndash;&gt;-->
<!--        <item name="colorPrimary">@color/colorPrimary</item>-->
<!--        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>-->
<!--        <item name="colorAccent">@color/colorAccent</item>-->
<!--        <item name="qmui_background_color">@color/qmui_config_color_background</item>-->
    </style>
...

</resources>

这样二个地方选择其中一个改都可以将QMUI的主题引入。

源码:

activity_main.xml :

<?xml version="1.0" encoding="utf-8"?>
<com.qmuiteam.qmui.widget.QMUIWindowInsetLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.qmuiteam.qmui.widget.QMUITopBarLayout
        android:id="@+id/topbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        android:fitsSystemWindows="true">
    </com.qmuiteam.qmui.widget.QMUITopBarLayout>

    <com.qmuiteam.qmui.widget.webview.QMUIWebViewContainer
        android:id="@+id/webview_container"
        android:fitsSystemWindows="true"
        android:layout_marginTop="?attr/qmui_topbar_height"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <include layout="@layout/content_main"/>

    </com.qmuiteam.qmui.widget.webview.QMUIWebViewContainer>


</com.qmuiteam.qmui.widget.QMUIWindowInsetLayout>

 

按上面的修改出来的主题如下,感觉还是与QMUI主题不符,怎么不是蓝色的标题栏???:

对比他的Demo

 

问题1: 标题栏的app名字显示出来了。

原因1: MainAcitivity.class:原来继承

 public class MainActivity extends AppCompactActivity 改成:
 public class MainActivity extends Activity

然后设置topBar颜色:

        在MainActivity.class里面设置topBar的方法里面添加: 
         mTopBar.setBackgroundColor(ContextCompat.getColor(this, R.color.app_color_theme_4));
       防止设置颜色调用失败,然后在res-values目录下的colors.xml添加此颜色:<color name="app_color_theme_4">#36C8F4</color>


 MainActivity.class
private void initTopBar() {
        mTopBar.setBackgroundColor(ContextCompat.getColor(this, R.color.app_color_theme_4));
        mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
                overridePendingTransition(R.anim.slide_still, R.anim.slide_out_right);
            }
        });

        mTopBar.setTitle("沉浸式状态栏示例");
    }

colors.xml 

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#008577</color>
    <color name="colorPrimaryDark">#00574B</color>
    <color name="colorAccent">#D81B60</color>
    <color name="app_color_theme_4">#36C8F4</color>
</resources>

最终运行效果如文章开关图片。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QMUI 学习一: 入门,如何添加QMUI框架到 android项目 ,并引入QMUI的主题Theme: 的相关文章

  • gradle更新后无法找到方法(无法编译项目)

    我尝试将项目中的 gradle 版本更新为 4 1 milestone 1 以下这些说明 https developer android com studio build gradle plugin 3 0 0 migration html
  • Android应用程序组件销毁和重新创建的详细信息

    有人可以向我提供一些具体的 值得信赖的 最好是简洁的 信息 内容如下 系统销毁和 如果适用 重新创建组件的顺序 片段 活动 活动的线程 异步任务 计时器 静态数据 类何时卸载 其他类中的线程 异步任务 定时器 主机 TabActivity
  • 如何在我现有的 Android 应用程序中使用 Telegram API(包括聊天应用程序)?

    我想使用 telegram API 在我现有的 Android 应用程序中开发聊天功能 我不知道如何实施 我认为 看看Telegram 数据库库 测试版 从这里TDLib https core telegram org tdlib 俄语 但
  • 如何重定向到 instagram://user?username={username}

    我的 html 页面上有这个链接 可以在特定用户上打开 Instagram 应用程序 a href Link to Instagram Profile a 我一直在寻找自动运行 url instagram user username USE
  • Dialog.setTitle 不显示标题

    我正在尝试向我的对话框添加自定义标题 但是每当我运行我的应用程序时 它都不会显示标题 我创建对话框的代码是 final Dialog passwordDialog new Dialog this passwordDialog setCont
  • 在 Cordova 应用程序中获取额外功能

    我们有两个 Android 应用程序 一个使用本机 Java 实现 另一个使用 Ionic 编写 Ionic 应用程序启动我的应用程序 这是使用灯插件 https github com lampaa com lampa startapp 我
  • Android 深度链接至 Instagram 应用

    Instagram 已经发布了 iOS 深层链接的 url 方案 但尚未为 Android 创建文档 有没有办法深入链接到 Android 上的 Instagram 应用程序 以转到 Instagram 应用程序中的特定位置 例如 Inst
  • Android Eclipse 上的 Web 服务

    我是 android eclipse java 的新手 事实上这个论坛也是如此 有人遇到过这种情况吗 从用户那里获取输入并通过使用 android eclipse 中的 Web 服务来显示适当的结果 有可用的示例吗 非常感谢 我正在发布教程
  • Android Studio 与本地网络共享上的项目文件

    这是我的设置 Android Studio 项目文件位于 Ubuntu 14 10 盒子上的共享文件夹中 尝试在 Windows 8 机器上运行 Android Studio 1 0 2 并将 U 驱动器映射到包含项目文件的 Ubuntu
  • 从 BroadcastReceiver 类调用活动方法

    我知道我可以做一个内部接收器类来调用接收器中的任何方法 但我的主要活动太大了 要做的事情也很多 因此 我需要一个扩展广播接收器的类 但它不是内部类 并且可以从我的主要活动中调用一种方法 我不知道是否可能 但我的活动是家庭活动和 single
  • Android - AudioRecord类不读取数据,audioData和fftArray返回零

    我是 Android 新手 一直在开发音调分析器应用程序 最低 SDK 8 我读了很多关于如何实现 Audiorecord 类的文章 但我想知道为什么它在我录制时不读取任何数据 我尝试显示 audioData 和 fftArray 的值 但
  • okhttp 获取失败响应

    我已经在我的 android 客户端中实现了 okhttp 来进行网络调用 当我收到失败响应时 我会收到失败代码以及与该代码相关的文本作为消息 但我没有收到服务器发送给我的自定义失败响应 在我实施的代码中的失败响应中 我收到的消息只是 错误
  • Mipmap 与可绘制文件夹[重复]

    这个问题在这里已经有答案了 我正在使用 Android Studio 1 1 Preview 1 我注意到 当我创建一个新项目时 我得到以下层次结构 不同 DPI 的 Mipmap 文件夹 不再有不同 DPI 的可绘制文件夹 我应该将所有资
  • 我应该释放或重置 MediaPlayer 吗?

    我有自己的自定义适配器类 称为 WordAdapter 并且我正在使用媒体播放器 名为pronounce WordAdapter 类中的全局变量 我有不同的活动 其中每个列表项都有线性布局 名为linearLayout 我正在设置onCli
  • 您使用什么物理 Android 设备进行测试?

    有什么好的推荐用于测试目的的物理 Android 设备吗 我正在苹果阵营寻找像 iPod touch 这样的设备 可以帮助 iOS 开发人员测试他们的东西 我知道有 Nexus One 但那东西相当昂贵 而且我并不真正关心手机的东西 而是可
  • Dagger 2 没有生成我的组件类

    我正在使用 Dagger 2 创建我的依赖注入 几个小时前它还在工作 但现在不再生成组件 这是我创建组件的地方 public class App extends Application CacheComponent mCacheCompon
  • Android 如何将总天数准确更改为年、月、日?

    我正在做一个应用程序 该应用程序与根据给定的生日日期输入获取一个人的年龄有关 为此 我从下面的代码中获取从该日期到当前日期的总天数 String strThatDay 1991 05 10 SimpleDateFormat formatte
  • 没有用于警告的设置器/字段 Firebase 数据库检索数据填充列表视图

    我只是想将 Firebase 数据库中的数据填充到我的列表视图中 日志显示正在检索数据 但适配器不会将值设置为列表中单个列表项中的文本 它只说 没有二传手 场地插入值 这让我觉得我的设置器没有正确制作 但 Android Studio 自动
  • 没有支持 FEATURE_CAMERA_EXTERNAL 的 Android 设备

    根据this doc https source android com devices camera external usb cameras一些 Android 设备允许使用 Camera2 API 访问外部 USB 摄像头 我检查了大约
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其

随机推荐

  • 思维导图软件 XMind 2022

    XMind是一个高级且易于使用的思维导图工具 它为您的想法提供了可视化支持 因此您可以更轻松地组织任务或与团队一起参加头脑风暴会议 使用这个易于使用的应用程序创建头脑风暴会议的思维导图 该应用程序包装在具有直观选项的用户友好界面中 XMin
  • 在自动驾驶的领域里面如何玩仿真 【1】 概述和写在前面的一些话

    在自动驾驶的领域里面如何玩sil仿真 1 写在前面的一些话 停了两年 很久没登录CSDN了 之前野心勃勃开的题目随着自己进入一家初创公司开始后就没有时间和精力去更新了 发现这两三年有很多人喜欢这几个都不算太监 甚至头都没有写完 的文章 不少
  • UI设计新手指南之什么是UI设计?

    最直观的 只要用手机 打开界面就会接触到 UI 设计 UI 设计是什么 它是指对软件人机交互 操作逻辑 界面美观的整体设计 UI设计的目的是创造出简单 直观 易于使用的界面 为用户提供良好的体验 随着移动互联网的兴起 UI设计越来越受到重视
  • SPI总线verilog hdl实现(1)SPI通信

    SPI总线传输只需要4根线就能完成 这四根线的作用分别如下 SCK Serial Clock SCK是串行时钟线 作用是Master向Slave传输时钟信号 控制数据交换的时机和速率 MOSI Master Out Slave in 在SP
  • Matlab深度学习笔记——深度学习工具箱说明

    本文是Rasmus Berg Palm发布在Github上的Deep learning toolbox的说明文件 作者对这个工具箱进行了详细的介绍 原文链接 https github com rasmusbergpalm DeepLearn
  • CSS行高line-height默认值normal以及line-height与盒子的关系

  • FindBugs作为eclipse的插件的使用

    目录 1 FindBugs是干嘛的 2 Eclipse如何安装FindBugs插件 3 Eclipse中如何使用FindBugs插件 注 本篇主要是讲FindBugsEclipse插件的使用
  • java连接多个mysql,JAVA:MySql:太多连接

    I think that my application is cursed debug goes where it wants and I don t know why Line by line debugging seems to ana
  • 【GOF23设计模式】_状态模式_UML状态图_酒店系统房间状态_线程对象状态切换JAVA250

    来源 http www bjsxt com 一 S03E250 01 GOF23设计模式 状态模式 UML状态图 酒店系统房间状态 线程对象状态切换 package com test state public interface State
  • 如何高效学习一门新技术

    如何高效学习一门新技术 最近着手学习WCF 举步维艰 故阅读了大量关于学习新技术方法的网页 最终整理如下 一共大家参考 对于这个较大的话题 我们分两个部分介绍 学习新技术的10个建议 和 学习新技术的具体行动 学习新技术的10个建议 尽管我
  • Python视频处理(1)——视频分镜头提取+视频处理

    目录 一 导出帧图像 二 判定相似度 1 均值哈希判定相似度 2 基于直方图相似度 三 视频处理 利用ffmpeg 1 截取视频1分钟 2 视频格式转换 3 多媒体格式转换 4 视频方向处理 5 其他命令代码整理 一 导出帧图像 将视频以帧
  • 关于mysql取余和取整的函数

    MySQL中整除和取余函数分别为 1 整除函数 DIV 或者 双斜杠 使用方法 SELECT 10 DIV 3 返回结果为 3 SELECT 10 3 返回结果为 3 2 取余函数 MOD 或者 百分号 使用方法 SELECT MOD 10
  • loop设备模拟nvme设备

    加载 nvme loop内核模块 需要内核支持 或者自己编译 nvme loop 相关模块 sudo modprobe nvme loop 生成 loop 文件 dd if dev zero of path to nvme fs bs 1M
  • Jenkins ——The server rejected the connection

    启动agent时 报如下错误 信息 Protocol JNLP4 connect encountered an unexpected exception java util concurrent ExecutionException org
  • HTK语音识别中的决策树

    1 为什么需要决策树 我们在使用HTK进行语音识别模型训练的过程中 首先进行的是单音素 单个高斯的模型训练 抛开单个高斯不说 单音素模型本身有很大缺点 没有考虑到本音素前后音素的发音对本音素的影响 比如 同样是一个音素iy 如果它前面的音素
  • 你好,面试官-秋招面经C++持续更新

    C 指针和引用的区别 指针常量和常量指针的区别 sizeof 和 strlen 的区别 const关键字 static关键字 C 中struct和class的区别 new malloc和deete free的区别 宏定义和typedef区别
  • C1 ARMv7-M Debug

    C1 1 Introduction to ARMv7 M debug This section describes the debug architecture for the ARMv7 M architecture profile Th
  • python消消乐游戏界面的实现:

    一 环境介绍 1 Python 版本 Python 消消乐游戏可以在 Python 2 7 和 Python 3 x 版本中运行 2 Pygame 模块 Python 消消乐游戏需要使用 Pygame 模块来实现游戏界面和图形绘制等功能 如
  • DP线和HDMI线区别,优缺点,传输显示器图像速率

    参考DP接口与HDMI接口各有什么优势 哪个更好 资料来源于网络 仅供参考 最近在x宝上买显示器的线 看到各种hdmi dp版本的线 2 0 dp1 4 4k 8k typec转三口hdmi 可把我看昏了 在网上收集了一些资料用于总结 以及
  • QMUI 学习一: 入门,如何添加QMUI框架到 android项目 ,并引入QMUI的主题Theme:

    用是最新的Android Studio 3 6 x的 下了新的QMUI Demo参考学习UI 先上效果图 如何添加QMUI框架并引用它的主题 1 添加框架 在app gradle里面添加依赖 implementation com qmuit