自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 Kotlin用动态代理hook View.OnClickListener报空指针问题

java.lang.NullPointerException: method.invoke(onClickListenerInstance, *args) must not be null

2022-08-24 18:29:29 865

原创 npx react-native run-android报error Android project not found

在搭建react-native开发环境的环境的时候,到了npx react-native run-android最后一步的时候,竟然出现以下错误:error Android project not found. Are you sure this is a React Native project? If your Android files are located in a non-standard location (e.g. not inside 'android' folder), consid

2022-05-15 16:58:53 1823

原创 Compose_23--动画之animateContentSize和Crossfade

一、animateContentSize修饰符可为大小变化添加动画效果如果想为容器大小变化添加动画和使用该修饰符,用法如下: modifier = Modifier.animateContentSize()当然了,如果想修改动画类型和处理动画结束监听事件,我们可以为其指定animationSpce和finishedListener,finishedListener回调有initialValue(动画开始前的初始值)和targetValue(动画结束后的目标值)两个参数。下面写个简单的例子:

2022-05-03 15:29:10 769

原创 Compose_22--动画之AnimatedContent

AnimatedContent可组合项在内容根据目标状态发生变化时,添加内容动画的效果。@ExperimentalAnimationApi@Composablefun compose_22() { var count by remember { mutableStateOf(0) } Box(modifier = Modifier.width(100.dp) .height(100.dp). clickable { count

2022-03-07 00:10:44 789 1

原创 Compose_21--动画之AnimatedVisibility

动画是界面交互重要的要素之一,为界面交互增添了活性,给人视觉上的享受。下面我们来使用Android Compose中的动画。在使用Compsose中的动画之前,我们需要先引入动画依赖: // Animations 下面的version不唯一,本文中使用的是1.1.0 implementation 'androidx.compose.animation:animation:$version'AnimatedVisibility(实验性API,以后可能会变化或移除)AnimatedVisibi

2022-02-27 00:43:24 1069

原创 Compose_20--画布(Canvas)

如果我们想自定义图形的话,就要使用Canvas,因为Canvas是自定义图形的核心可组合项。在Canvas中,可用空间大小可用通过modifier来设置,例如设置Canvas的可用空间大小为填充其父元素:Canvas(modifier = Modifier.fillMaxSize()) {}Canvas自动提供了一个维护自身状态且限定了作用域的绘图环境--DrawScope,其提供了一些有用的字段:drawContext:包含创建图形环境所需依赖项的当前DrawContext; cent

2022-01-04 22:01:06 2573

原创 Compose_19--抽屉

用Compose写抽屉

2021-12-26 16:45:52 1904

原创 Compose_18--顶部Tab导航

Android Compose顶部Tab导航

2021-12-25 18:29:38 1830

原创 Compose_17--导航3(深沉链接)

Android Compose支持隐式深沉链接

2021-12-25 15:52:31 858

原创 Compose_16--导航2(底部导航栏)

Android用Compose写一个底部导航栏

2021-12-22 23:33:09 2220 2

原创 Compose_15--导航1(页面跳转)

任何一个App不可能只展示一个页面,因此,页面跳转是一个必不可少的功能。在Compse中,使用Navigation组件在可组合项之间导航。如果需要使用Navigation组件,必须在应用模块的build.gradle文件中添加一下依赖:dependencies { implementation "androidx.navigation:navigation-compose:2.4.0-beta02"}一、认识NavControllerNavController是Navigation

2021-12-18 15:17:52 2106

原创 Compose_14手势

一、点击并按下在Compose中,响应点击事件实在修饰Modifier下的clickable中实现,clickable修饰符允许应用检测对已应用该修饰符的元素的点击。/** * 手势 */@Composablefun compose_14() { val count = remember { mutableStateOf(0) } Column() { // 点击事件 Text( text = count.value.

2021-12-07 22:30:29 590

原创 Compose_13--自定义 主题

在我们开发过程中,可能由自定义主题的需求?但是,如何实现自定义主题呢?下面我们来一起看看。虽然官方推荐我们使用MaterialMateiral设计系统,但这并代表我们只能使用该系统。由于Material完全基于公共API构建而成,因此我们可以仿照同样的方式创建设计系统。而自行创建设计系统的方式由以下几种方式:通过其他主题值扩展 MaterialTheme 将一个或多个Material系统(Colors、Typography或shapes)替换为自定义实现并保留其他实现 实现完全自定义的设计系统以替换

2021-12-03 23:29:52 558 1

原创 Compose_12--Material 主题

Material主题设置是一种系统化的方法,用于自定义Material Design以更好反映产品的品牌,它是由颜色、排版和形状属性组成。如果这些属性被定义,构建应用的组件就会展现出对应属性的效果。在Jetpack Compose中使用MaterialTheme可组合项来实现这些概念。MaterialTheme( colors = …, // 颜色 typography = …, // 排版 shapes = … // 形状) { // app内容}下面我

2021-12-01 23:52:41 2019

原创 Compose_11--资源

在Android开发中少不了对资源的引用,一般在开发过程中,我们都是把文本放在value/strings.xml、把像素大小放在value/dimens.xml、把图片放在drawabl-xx下、把颜色放在value/colors下面(在compose中不建议直接引用颜色资源,而是使用主题中的颜色)。下面我们来看看在Compose是如何使用资源文件的例子。import android.os.Bundleimport androidx.activity.ComponentActivityimport

2021-12-01 00:22:00 687

原创 Compose_10--认识脚手架Scaffold

Scaffold是Compose的脚手架,基本实现了基本材料设计的可视化布局结构,包括顶部应用程序栏和底部栏、抽屉和浮动操作按钮等。import androidx.compose.foundation.layout.ColumnScopeimport androidx.compose.foundation.layout.PaddingValuesimport androidx.compose.material.*import androidx.compose.runtime.Composable

2021-11-29 22:30:27 978

原创 Compose_09--写一个可以展开的列表

import android.os.Bundleimport androidx.activity.ComponentActivityimport androidx.activity.compose.setContentimport androidx.compose.foundation.Imageimport androidx.compose.foundation.backgroundimport androidx.compose.foundation.clickableimport andr.

2021-11-25 23:44:43 2248

原创 Compose_08--列表LazyColumn和LazyRow

列表在普遍App中是一个十分重要组成部分,随处可见,而在Compose中是如何实现列表的呢?没错,就是使用LazyColumn实现纵向滚动列表,使用LazyRow实现横向滚动列表,下面是一个简单的例子。import android.os.Bundleimport androidx.activity.ComponentActivityimport androidx.activity.compose.setContentimport androidx.compose.foundation.backg

2021-11-25 00:09:40 4102

原创 Compose_07--按钮Button

import android.os.Bundleimport androidx.activity.ComponentActivityimport androidx.activity.compose.setContentimport android.util.Logimport androidx.compose.foundation.BorderStrokeimport androidx.compose.foundation.Imageimport androidx.compose.founda.

2021-11-23 23:36:08 569

原创 Compose_06--图片Image

import android.os.Bundleimport androidx.activity.ComponentActivityimport androidx.activity.compose.setContentimport androidx.compose.foundation.Imageimport androidx.compose.foundation.borderimport androidx.compose.foundation.layout.sizeimport androi.

2021-11-22 23:47:45 688

原创 Compose_05--文本输入框TextField

一、在Compose中,要实现文本输入就要使用TextField,而TextField 实现分为两个级别:TextField 是 Material Design 实现,一般建议用这个实现,默认样式为填充,如果你想要轮廓样式的话,可以用OutlinedTextField。 BasicTextField 允许用户通过硬件或软件键盘编辑文字,但没有提供提示或占位符等装饰。二、下面我们来看看 TextField 、OutlinedTextField和OutlinedTextField的使用TextFie

2021-11-22 22:05:01 2796

原创 Compose_04--Text使用

import android.os.Bundleimport androidx.activity.ComponentActivityimport androidx.activity.compose.setContentimport android.util.Logimport androidx.compose.foundation.layout.*import androidx.compose.foundation.text.ClickableTextimport androidx.compo.

2021-11-20 01:08:02 1225

原创 Compose_03--设置布局参数

在Compose中,如果需要设置控件的布局参数,需要设置控件modifier属性。一、设置控件的宽高1.设置宽度铺满全屏:modifier = Modifier.fillMaxWidth();2.设置高度铺满全屏:modifier = Modifier.fillMaxHeight();3.设置宽高铺满全屏:modifier = Modifier.fillMaxWidth().fillMaxHeight() 或modifier = Modifier.fillMaxSize()二..

2021-11-18 00:34:33 2130

原创 Compose_02--布局

写完Compose第一个程序之后,接着了解Compose的布局。在Compose中有Column、Row和Box三种布局,其中Column是垂直布局,相当于把LinearLayout的orientation属性设置为vertical;Row是水平布局,相当于把LinearLayout的orientation属性设置为horizontal;Box是层叠布局,相当于FrameLayout。import android.os.Bundleimport androidx.activity.Compo...

2021-11-16 22:50:37 1448

原创 Compose_01--第一个Compse程序

一、配置整个项目的build.gradle// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript { repositories { google() mavenCentral() } dependencies { classpath "com.android.too

2021-11-16 00:14:32 1383

原创 记录Compose第一个问题--Gradle插件和Java版本不匹配

在Android StudioArtic Fox创建项目后出现问题:Unable to start the daemon process.This problem might be caused by incorrect configuration of the daemon.For example, an unrecognized jvm option is used.Please refer to the User Manual chapter on the daemon at https:/

2021-11-15 22:34:20 4249 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除