当前位置: 首页 > news >正文

12. Material Design

12. Material Design

kotlin

  • 引入库

  • // project structure
    com.google.android.material:1.1.0// app\build.gradle
    implementation 'de.hdodenhof:circleimageview:3.0.1'
    

Design

package com.example.helloworldimport android.os.Bundle
import androidx.appcompat.widget.Toolbarclass Design : BaseActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.design_layout)val toolbar5: Toolbar = findViewById(R.id.toolbar5)setSupportActionBar(toolbar5)supportActionBar?.setDisplayHomeAsUpEnabled(true)            // 设置返回按钮toolbar5.setNavigationOnClickListener { finish() }             // 设置结束 act2ActivityCollector.addActivity(this)}
}

MainActivity2

package com.example.helloworldimport android.content.Context
import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.widget.ArrayAdapter
import android.widget.Button
import android.widget.ListView
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbarclass MainActivity2 : BaseActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.second_layout)// toolbar 部分val toolbar: Toolbar = findViewById(R.id.toolbar2)setSupportActionBar(toolbar)supportActionBar?.setDisplayHomeAsUpEnabled(true)            // 设置返回按钮toolbar.setNavigationOnClickListener { finish() }             // 设置结束 act2ActivityCollector.addActivity(this)// 从前一个 Activity 接收数据val extraData1 = intent.getStringExtra("param1")val extraData2 = intent.getStringExtra("param2")Log.d("Activity2", "param1 is $extraData1, param2 is $extraData2")// 返回数据(但是未实现)val button2: Button = findViewById(R.id.button2)        // 通过 id 找到 view, 并指明类型为 buttonbutton2.setOnClickListener {val intent = Intent().apply { putExtra("data_return", "Hello Activity1") }setResult(RESULT_OK, intent)finish()}// 关闭所有 Activityval button3: Button = findViewById(R.id.button3)button3.setOnClickListener {ActivityCollector.finishAll()}val button4: Button = findViewById(R.id.button4)button4.setOnClickListener {startNewActivity(this, MainActivity3::class.java)}val button5: Button = findViewById(R.id.button5)button5.setOnClickListener {startNewActivity(this, MainActivity4::class.java)}val button7: Button = findViewById(R.id.button7)button7.setOnClickListener {startNewActivity(this, FragmentActivity::class.java)}val button8: Button = findViewById(R.id.button8)button8.setOnClickListener {startNewActivity(this, FileStorage::class.java)}val button9: Button = findViewById(R.id.button9)button9.setOnClickListener {startNewActivity(this, DataPreference::class.java)}val button10: Button = findViewById(R.id.button10)button10.setOnClickListener {startNewActivity(this, SqliteDB::class.java)}val button11: Button = findViewById(R.id.button11)button11.setOnClickListener {startNewActivity(this, Design::class.java)}}}

design_layout

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"><androidx.appcompat.widget.Toolbarandroid:id="@+id/toolbar5"android:layout_width="match_parent"android:layout_height="?attr/actionBarSize"android:background="?attr/colorPrimary"android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</FrameLayout>

second_layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><androidx.appcompat.widget.Toolbarandroid:id="@+id/toolbar2"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="?attr/colorPrimary"android:minHeight="?attr/actionBarSize"android:theme="?attr/actionBarTheme" /><Buttonandroid:id="@+id/button2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Back" /><Buttonandroid:id="@+id/button3"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Quit App" /><Buttonandroid:id="@+id/button4"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Go third" /><Buttonandroid:id="@+id/button5"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Go forth" /><Buttonandroid:id="@+id/button7"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Go Fragment" /><Buttonandroid:id="@+id/button8"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="File Storage" /><Buttonandroid:id="@+id/button9"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="SharedPreferences" /><Buttonandroid:id="@+id/button10"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="SQLite" /><Buttonandroid:id="@+id/button11"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="design" /></LinearLayout>
http://www.jsqmd.com/news/253988/

相关文章:

  • 2026副主任药师考试机构实力榜:三大靠谱选择深度测评与口碑推荐 - 医考机构品牌测评专家
  • 【AI编程工具】-TRAE CN v3.3.21 手把手教你玩转全新Skills技能!
  • 救命神器!9款AI论文平台测评:本科生毕业论文救星
  • 基于VUE的宁新学校学生宿舍管理信息系统[VUE]-计算机毕业设计源码+LW文档
  • 2026年副主任药师考试培训机构深度测评:口碑与实力兼备的选择指南 - 医考机构品牌测评专家
  • 实验课速通SQLServer期末考点五:数据库维护
  • spaCy从入门到精通:1.2 安装与环境配置
  • 2026年音乐放松按摩椅厂家权威推荐榜单:音乐放松椅/体感型音乐放松椅/户外素质拓展箱/团体活动工具箱/活动工具箱源头厂家精选 - 品牌推荐官
  • 福建卫生高级职称备考机构深度解析 - 医考机构品牌测评专家
  • 【2026最新版】迅雷看看下载安装教程|电脑版详细安装步骤 + 常见问题解决 - PC修复电脑医生
  • 赣州市全南宁都于都兴国寻乌石城雅思培训辅导机构推荐:2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025
  • GEO服务商技术对决:谁能为您的AI搜索可见度保驾护航?
  • 基于VUE的猫舍小猫管理系统[VUE]-计算机毕业设计源码+LW文档
  • 2026陕西保安服务公司TOP5精选推荐榜:秩序维护、门卫守护、临时勤务服务 - 深度智识库
  • 海外碳酸镁实力派:2025年厂家排行与优势分析,市场碳酸镁精选实力品牌榜单发布 - 品牌推荐师
  • 1.1 什么是Whisper? | 《Whisper语音识别实战专栏》
  • 2026年全自动洗车机厂家实力推荐榜:隧道式、往复式、公交大巴及工程类智能洗车设备精选,解析无人值守与扫码洗车技术前沿 - 品牌企业推荐师(官方)
  • NopCommerce 4.9.3全栈开发实战 - 4.3 插件生命周期管理
  • 命令行中的 Python 与 Pip:版本之谜与最佳实践指南(python or python3 - pip or pip3)
  • Java SpringBoot+Vue3+MyBatis 学生宿舍信息系统系统源码|前后端分离+MySQL数据库
  • VMware ESXi 8.0U3h集成新旧NVMe、USB、网卡驱动镜像版
  • 基于VUE的快递物流园司机管理系统[VUE]-计算机毕业设计源码+LW文档
  • 2026年上海新中式装修公司推荐榜:同济经典设计,环保装修/小户型装修/日式装修/极简风装修/简欧风格装修/旧房翻新/房屋装修/意式轻奢装修/新房装修公司精选 - 品牌推荐官
  • 1.1 ESPnet入门与环境搭建 | 《ESPnet2实战指南:语音处理全栈开发》
  • 2026年安徽代运营排行榜top5:最新权威测评发布 代运营公司排名出炉 - 野榜数据排行
  • 基于VUE的课程网上答疑讨论系统[VUE]-计算机毕业设计源码+LW文档
  • TikTok Shop爆款选品指南:TikTok 2026怎么选品?一文全解析!
  • RAG检索策略完全指南
  • 【2025最新】基于SpringBoot+Vue的靓车汽车销售网站管理系统源码+MyBatis+MySQL
  • 企业级AI智能体实践:如何降低大模型幻觉风险