适合快速编写模仿HyperOS
风格的软件/模块
本库一切行为,与小米无关
- 标题 (title)
- 文本 (text)
- 分割线 (line)
- 按钮 (button)
- 开关 (switch)
- 拖动条 (seekbar)
- 对话框 (dialog)
- 卡片 (card)
- 自定义组件 (custom) 具体可查看 cn/xiaowine/ui/build/PageBuild.kt
groovy
allprojects {
repositories {
// ...
maven { url 'https://jitpack.io' }
}
}
kotlin
allprojects {
repositories {
// ...
maven("https://jitpack.io")
}
}
最新版本⬇️⬇️⬇️
groovy
dependencies {
// ...
implementation 'com.github.xiaowine:WineUI:<VERSION>'
}
kotlin
dependencies {
// ...
implementation("com.github.xiaowine:WineUI:<VERSION>")
}
<manifest>
<application android:theme="@style/Theme.WineUI">
<!-- 将主题设置为@style/Theme.WineUI -->
<!-- 不建议单独设置activity主题 -->
</application>
</manifest>
// 1.继承 WineActivity
// 2.注册页面 registerPage
// 3.注册页面的时候, PageData 应设置 isHome 参数为 true, 表示这个页面是首页
// 4.首页的 TabBar 上不会有返回按钮, 其余页面的 TabBar 上都会有返回按钮
class DemoActivity : WineActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 注册页面,两种方式可以混用,后注册的覆盖先注册的
// 或通过手动添加注册页面
registerPage(
PageData(MainPage::class.java, isHome = true),
PageData(TextPage::class.java),
PageData(SwitchPage::class.java),
)
// 或通过扫描包名注册页面(全部按照默认配置生成界面)
registerPage("cn.xiaowine.app.pages", MainPage::class.java)
}
}
// 1.继承WinePage
// 2.初始化页面initPage
// 并非必须在init中初始化页面,可以在除了onCreateView和onViewCreated任何地方初始化页面,只需要加上一个reloadPage()方法
// 可参考 cn/xiaowine/ui/pages/MainPage.kt
// 加上@Coroutine注解,初始化页面的时候会采用协程
@Coroutine
class MainPage : WinePage() {
init {
initPage {
title {
text = this@MainPage::class.java.simpleName
}
title {
text = "标题"
}
toPageText(page = TextPage::class.java)
toPageText(page = SwitchPage::class.java)
toPageText(page = SeeKBarPage::class.java)
toPageText(page = DialogPage::class.java)
toPageText(page = CustomPage::class.java)
toPageText(page = CardPage::class.java)
}
}
}
-keep class cn.xiaowine.ui.annotation.** { *; }
-keep class cn.xiaowine.ui.data.** { *; }
-keep class cn.xiaowine.ui.widget.**{ <init>(...);}
-keep class cn.xiaowine.ui.appcompat.**{ <init>(...);}