微信小程序自定义控件效果怎么实现
编辑:小飞燕 发布时间:2021-04-20 10:05:25
小编之前试着使用了一下微信小程序自定义控件,还自定义了一些属性,发现微信小程序自定义控件对于小程序开发来说还蛮重要的,但是想要实现微信小程序自定义控件效果要怎么操作呢?
将一个带边框的加载到当前的自定义控件中,用自定义的属性对这个带边框的进行赋值。比较后将这个带边框的添加到当前自定义控件中。
详细说一下,实现微信小程序自定义控件效果的具体步骤:
1.自定义一个控件。自定义控件的时候,构造方法有三个。
第一个为一个参数,一般在代码中动态新一个对象的时候用到
第二个为两个参数,一般在动态加载xml文件的时候用到,本例用的就是两个分享小程序参数的构造方法。
第三个为三个构造参数,一般在xml文件中定义了风格属性的时候用到。
2.自定义属性
[html]查看普通副本
3.在xml文件中引用自定义控件和自定义属性。这里有一点需要注意:需要自己在添加一个名空间的命名控件,作为自定义属性的前缀。命名控件的格式为:xmlns : my custom text=' http://schemas。安卓。com/apk/res/com。mycustomview。
其中res/目录后面跟上你小程序项目的包名。也就是r文件所在的包名。
[html]查看普通副本
xmlns :工具=' http://架构。安卓。' com/tools '
xmlns : mycustomtext=' http://架构。安卓。com/apk/res/com。“mycustomview”
android : layout _ width=' match _ parent '
android : layout _ height=' match _ parent '
tools : context=' $ { relativepackage } .$ { activity class } ';
android : layout _ width=' wrap _ content '
android : layout _ height=' wrap _ content '
mycustomtext:mytext='这是一个通过自定义内容,颜色,大小的文本框'
my custom text : my text color=' # f00 '
mycustomtext : mytextsize=' 10sp ';
4.修改自定义控件的代码,提取到自定义的属性值
[html]查看普通copypackage com.mycustomview
导入安卓。内容。背景;
导入安卓。内容。res . typed数组;
导入安卓。util。attributeset
导入安卓。视图。layoutinflater
导入安卓。视图。视图;
导入安卓。小工具。线性布局;
导入安卓。小工具。文本视图;
公共类mycustomview扩展了linearlayout {
public mycustomview(context context,attributeset attrs) {
super(上下文,attrs
//取得自定义属性的值,这些值存在typedarray这个容器中
类型化数组mtypedarray=context。获取styledataattributes(attrs,r . styleable。mycustomtext);
//通过字段名等方法取出每一个自定义属性的值
string text=mtypedarray。getstring(r . style able。mycustomtext _ mytext);
int text color=mtypedarray。getcolor(r . style able。mycustomtext _ mytext color,0);
float text size=mtypedarray。getdimension(r . style able。mycustomtext _ mytext size,0);
//讲另外一个带边框的通过膨胀方法,取得这个带边框的的对象,并且用得到的自定义属性值进行赋值。
视图视图=布局充气机。from(获取上下文).充气(r.layout.text_item,null);
文本视图文本视图=(文本视图)视图。findviewbyid(r . id。文本视图);
文本视图。settext(text);
文本视图。settext颜色(文本颜色);
文本视图。settextsize(文本大小);
//讲用自定义属性值赋值好后的带边框的添加到当前自定义控件中。
this.addview(视图);
}
}
5 .主要活动中代码不变,默认代码
[html]查看普通copypackage com.mycustomview
导入安卓。app。活动;
导入安卓。os。捆绑;
导入安卓。视图。菜单;
导入安卓。视图。menuitem
公共班级主要活动扩展活动{
@覆盖
受保护的创建时无效(bundle savedinstancestate){
超级。oncreate(savedinstancestate);
setcontent视图(r . layout。activity _ main);
}
}
这里是标题开头微信小程序数据分页怎么实现这里是标题尾
实现微信小程序的数据分页就像开发小程序一样,需要相应的小程序代码。如果没有正确的代码,就没有办法达到数据分页的效果。下面是代码,希望对大家有帮助。
当用户打开一个小程序页面时,假设后台的数据量巨大,所有的数据会一次性返回给客户端,这样会减慢页面的打开速度。而且当用户只看上面的内容而不需要看下面的内容时,也会浪费用户流量。从优化的角度考虑,后台不应该一次返回所有的数据,当用户需要再次关闭时,会加载更多的数据。
业务要求:
当列表滚动到底部时,继续向上拉并加载更多内容
强制参数:
(1)pageindex: 1 //什么时候加载
(2)回呼计数: 15 //要返回的数据数量
其他参数:
根据界面所需的参数
实施原则:
第一次开发调用applet接口时,传递两个必要的参数(第一次加载要返回的数据个数为15),其他参数(要搜索的字符串)发送到后台,后台返回第一个数据。在请求成功的回调函数中,判断返回的数据是否为;0,如果是,取出数据,渲染视图层,在列表底部显示“上拉加载”;如果没有,则没有数据可用,列表底部显示“无更多”,同时隐藏“上拉负载”。
当用户已经滚动到列表的底部时(这里使用applet提供的scroll-view组件的bindscrolltolower事件),bindscrolltolower事件被触发,参数pageindex为1,然后两个必要的参数(第二次加载要返回的数据数为15)和其他参数(要搜索的字符串)被给后台,后台将剩余的数据返回给前台,前台根据原始数据添加数据。
主页结果如下:
1.index.wxml
搜索
{{item.songname}}
{{item.name}}
加载更多.
全部加载
2.index.wxss
第{
display: flex
flex-direction:柱;
高度:;
}
/*搜索*/。搜索{
flex: auto
display: flex
flex-direction:柱;
背景# fff
}。搜索栏{
flex: none
display: flex
align-items : center;
justice-content :空格;
padding: 20rpx
background : # f4 f4;
}。搜索包装{
相对位置:
flex: auto
display: flex
align-items : center;
height: 80rpx
padding: 0 20rpx
背景# fff
border-radius : 6rpx;
}。搜索结束。图标-搜索{
margin-right : 10 rpx;
}。搜索结束。搜索-输入{
flex: auto
font-size : 28 rpx;
}。搜索-取消{
padding: 0 20rpx
font-size : 28 rpx;
}
/*搜索结果*/。搜索结果{
flex: auto
相对位置:
}。搜索-结果滚动-查看{
位置:
bottom : 0;
left : 0;
right : 0;
top : 0;
}。结果-项目{
相对位置:
display: flex
flex-direction:柱;
padd : 20 rpx 0 20 rpx 110 rpx;
隐藏飞越:
border-bottom : 2r px solid # e5e 5e 5;
}。结果项。媒体{
位置:
left: 16rpx
top: 16rpx
width: 80rpx
height: 80rpx
矿房
er-radius : 999 rpx;
}。结果项。标题,结果项。副标题{
隐藏飞越:
文本-overflow:省略号;
空白: nowrap
行高: 36rpx
}。结果项。标题{
边缘-底部: 4 rpx
颜色: # 000
}。结果项。副标题{
颜色: # 808080
font-size : 24 rpx
}。结果-项目:第一个孩子.字幕文本{
右边距: 20 rpx
}。结果-项目:不是(:第一个孩子).字幕文本: not(:第一个孩子): before {
内容: '/';
margin: 0 8rpx
}。正在加载{
padding: 10rpx
文本-对齐:中心;
}。加载:before{
显示器:内联块;
右边距:5 rpx;
垂直对齐: 中间;
内容: " ";
宽度: 40rpx
高度: 40rpx
背景: url(./index/images/icon-loading.png)不重复;
背景尺寸:容器;
动画:旋转1s线性无限;
}。loading.complete:before{
显示器:无;
}
3.index.js
var util=require('././utils/util.js ')
页面({
数据: {
searchkeyword: ' ',//需要搜索的字符
searchsonglist: [],//放置返回数据的数组
isfromsearch: true,//用于判断searchsonglist数组是不是空数组,默认没错,空的数组
searchpagenum: 1,//设置加载的第几次,默认是第一次
callbackcount: 15,//返回数据的个数
searchloading: false,//'上拉加载'的变量,默认假的,隐藏
搜索加载完成: false//没有数据"的变量,默认假的,隐藏
},
//输入框事件,每输入一个字符,就会触发一次
bindkeywordpinput :函数(e){
console.log('输入框事件)
this.setdata({
搜索关键字: e . detail。价值
})
},
//搜索,访问网络
fetchsearchlist:功能{
让那个=这个;
让搜索关键字=那个。数据。搜索关键字,//输入框字符串作为参数
搜索页面编号=那个。数据。搜索页码,//把第几次加载次数作为参数
回调计数=那个。数据。回调计数;//返回数据的个数
//访问网络
util。getsearch music(搜索关键字,searchpagenum,callbackcount,function(data){
console.log(数据)
//判断是否有数据,有则取数据
if(data.data.song.curnum!=0){
让搜索列表=[];
//如果isfromsearch是真实的从数据中取出数据,否则先从原来的数据继续添加
那个。data.isfromsearch?搜索列表=数据。数据。歌曲。list : searchlist=那个。数据。searchsonglist。concat(数据。数据。歌曲。列表)
that.setdata({
searchsonglist: searchlist,//获取数据数组
zhida: data.data.zhida,//存放歌手属性的对象
搜索负载: true//把'上拉加载'的变量设为假的,显示
});
//没有数据了,把"没有数据"显示,把"上拉加载"隐藏
}else{
that.setdata({
searchloadingcomplete: true,//把"没有数据"设为没错,显示
搜索加载: false//把'上拉加载'的变量设为假的,隐藏
});
}
})
},
//搜索按钮,触发小程序按钮事件
keywordsearch:函数(e){
this.setdata({
searchpagenum: 1,//第一次加载,设置一
searchsonglist:[],//放置返回数据的数组,设为空
isfromsearch: true,//第一次加载,设置真实的
searchloading: true,//把'上拉加载'的变量设为没错,显示
搜索加载完成: false//把"没有数据"设为假的,隐藏
})
这个. fetchsearchlist
},
//滚动到底部触发事件
searchscrolllower:函数{
让那个=这个;
if(that.data.searchloading!那个。数据。搜索加载完成){
that.setdata({
搜索页码:数据。搜索页码1,//每次触发上拉事件,把searchpagenum 1
isfromsearch: false //触发到上拉事件,把isfromsearch设为为错误的
});
那个. fetchsearchlist
}
}
})
微信小程序数据分页的介绍和实现数据分页所需的代码都在本文中。仔细阅读小编给出的信息,就可以拿代码实现小程序数据分页的功能了。更多信息,请关注源代理网的小程序渠道。
上一篇:小程序添加地址能改吗
下一篇:怎样修改已经展示的小程序
猜你喜欢
-
10个小程序自定义关键词技巧658人喜欢
微信小程序太多不容易找?如何快速找到自己想用的微信小程序?目前找想用的小程序方法可能是线下扫码、公众号、好友分享、长按小程序码、搜索小程序名称,今天小编分享大家一个新的方法,快跟小编一起来看看吧!微信小程序多了一个新方式——小程序后台新增自定义…
更新时间:2019-10-31 16:24:23
-
微信小程序自定义菜单技巧581人喜欢
自从微信小程序支持自定义菜单之后,很多人就询问小编关于自定义菜单的相关内容,所以今天小编来集中为大家讲解一下微信小程序自定义菜单的使用。关于小程序支持自定义菜单,你必须知道的这几件事情:1. 小程序关联公众号,就会推送小程序消息,点击该推送消息直达小程…
更新时间:2021-01-04 13:41:48
-
小程序自定义组件技巧202人喜欢
微信小程序自定义组件包括很多内容,比如小程序对话框、小程序背景等等,小编今天为大家找到了所有自定义组件的小程序开发源码,一起来看看吧!components[backdrop - 背景幕][dialog - 对话框][loading - 指示器][toast - 提示框][rater - 评分]backdrop - 背景幕…
更新时间:2020-09-23 07:56:02
-
小程序自定义遮罩层开发代码102人喜欢
小程序开发的很多方面都需要精确的代码。最近有朋友问如何开发小编小程序的自定义蒙版层?小编找到了开发所需的小程序代码,希望对大家有所帮助。1.按照以下步骤开发掩膜层的js:获取坐标函数g…
更新时间:2021-03-15 07:31:55
-
微信小程序自定义编译使用步骤96人喜欢
有朋友反映,小程序的编译修改内容没变。为什么?其实你要学会用微信小程序定制编译,这样小程序页面刷新后就能看到新的内容。微信小程序定制编译开发的具体使用步骤如下,希望对大家有所帮助。…
更新时间:2021-04-20 09:57:56
-
微信小程序自定义关键词怎么设置93人喜欢
微信小程序启动时,需要输入全名才能找到小程序,不输入一个字或出错就找不到对应的小程序。后来微信开辟了搜索关键词查找小程序的能力,最近微信又增加了自定义关键词的功能。微信小程序的自定…
更新时间:2021-04-15 09:18:53
-
微信小程序自定义组件开发源码92人喜欢
微信小程序自定义组件包括很多内容,比如小程序对话框、小程序背景等等,小编今天为大家找到了所有自定义组件的小程序开发源码,一起来看看吧!成分[背景-背景幕][对话-对话框][装载-指示器][吐…
更新时间:2021-04-16 10:16:06
-
如何实现微信小程序自定义底部弹出层85人喜欢
微信小程序自定义底部弹出框的效果如何实现?相信很多人还是不太了解这个。在这里,小编整理了一些关于微信小程序底部弹出框效果的代码信息,可以供大家参考。有需要的朋友可以借鉴!为了实现微…
更新时间:2021-03-11 07:33:26
-
小程序自定义关键词怎么设置83人喜欢
小程序引入了一个新功能“自定义关键字”。为了更快更准确的找到需要的小程序,这个小程序的关键词搜索功能诞生了,用户和朋友可以通过定制关键词来缩短搜索时间。小程序自定义关键字怎么设置?…
更新时间:2021-04-20 09:56:12
-
微信小程序自定义关键词搜索抢注热词80人喜欢
微信小程序增加了自定义关键词搜索。在这个微信小程序增加新功能之前,都是微信热词。现在会怎么样?今天我们来看看微信小程序自定义关键词搜索和抢注热词。欢迎阅读。微信小程序在后台新增了推…
更新时间:2021-04-15 09:15:26
-
微信小程序自定义的模态对话框怎么实现79人喜欢
微信小程序自定义模态对话框怎么实现?根据小编的说法,api官方显示模式弹出窗口只能显示文本内容。如果我们想拥有多种功能,我们需要定制对话内容。你知道微信小程序定制的模态对话框怎么实现吗…
更新时间:2021-03-09 08:01:53
-
小程序自定义关键词的用处有哪些78人喜欢
最近小程序发布了一个新功能:自定义关键字,但是很多人不知道自定义关键字在小程序中的用处。其实对于小程序搜索和小程序推广都很有用。看看下面的信息。官方定义如下:发布小程序的开发者最多…
更新时间:2021-04-17 10:24:56