请选择 进入手机版 | 继续访问电脑版

星空社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 476|回复: 0

[lua教程] 【lua教程】仿MT管理器相对布局加适配器

[复制链接]

407

主题

472

帖子

1622

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1622

荣誉管理论坛元老

发表于 2021-7-1 08:34:20 来自手机 | 显示全部楼层 |阅读模式 来自:
  1. require "import"
    1 S; A$ ?. V9 L' O. Z
  2. import "android.app.*"
    4 h" [- t1 Z6 u7 H: ^9 D* }7 o6 X- g
  3. import "android.os.*"
    1 z, Y6 F! A5 b6 C" l' `, y/ {! w6 |
  4. import "android.widget.*"$ h& G& w: k; S0 c5 q
  5. import "android.view.*": x& S' c! o# u1 w5 P
  6. layout=; q; F8 `* l( I, B8 N
  7. {; Q0 w) I5 f8 P) K5 }* I
  8.   LinearLayout,--线性布局
    ) p* S7 C( y( F, G* x5 |" @
  9.   orientation="vertical",--布局方向
    / b. J( q. B5 G5 F9 B
  10.   layout_width="fill",--布局宽度6 b9 \' O. U( l1 W
  11.   layout_height="fill",--布局高度! o8 \2 e6 d0 c( J% t; U4 z
  12. % w% F% w; G7 ^0 F* I6 O  A  ~
  13.   {+ Y- P$ _# E. A% N2 m: J
  14.     RelativeLayout,--相对布局
    & R4 F* o0 d" ?( i" P3 |
  15.     layout_width="fill",--布局宽度& c3 W4 V, y# ]
  16.     layout_height="fill",--布局高度, b& y6 r5 r. T, L5 w
  17.     {9 Q+ Z! j+ B2 P6 ^
  18.       ListView,--列表视图控件
    : p$ s! I- ]5 R+ `) }
  19.       layout_width="50%w",--布局宽度/ d6 T+ U1 J) c8 S8 p
  20.       layout_height="fill",--布局高度3 n8 z8 e' g# U5 U- Z: B: Q
  21.       dividerHeight="1",--分割线高度
    ' D9 D% q: a$ p. R' W
  22.       verticalScrollBarEnabled=false,--隐藏滑条& E, g5 z, b( |. P, X5 c: Z
  23.       id="liebiao1",--控件ID
    0 S1 v3 ]1 u: z4 N  A! r
  24.       layout_alignParentLeft=true,--重力居左
    8 V7 r! B# H9 q- X
  25.       layout_centerVertical=true,--将控件置于垂直方向的中心位置) A  K5 x, r7 x1 J* l0 H( t; |
  26.     },
    , r% V4 b0 X+ h
  27.     {
    / P+ F; R2 D; Y' m
  28.       TextView,--垂直分割线8 ^7 b# U! t9 g; b  u
  29.       layout_width="1px",--布局宽度
    ; z5 M: |. W# L( O0 v
  30.       layout_height="fill",--布局高度5 c2 ]" {) j/ P9 t( g" s
  31.       backgroundColor="#bebebe",--背景色/ s" u1 z1 Y9 P- m
  32.       layout_centerInParent=true,--将控件置于父控件的中心位置
    ) H0 Y2 f4 b9 @4 p9 N3 }4 K
  33.       layout_centerHorizontal=true,--将控件置于水平方向的中心位置
    2 D& i$ ?* j$ l( E, ?8 x& l# j
  34.     },
    & l8 G1 h; K" Q% I$ I
  35.     {
    6 b  y: N7 m7 d' Q' N5 K
  36.       ListView,--列表视图控件
    7 ]0 t8 g% b3 N
  37.       layout_width="50%w",--布局宽度, d6 c3 Y2 o4 S8 e) ^0 ]
  38.       layout_height="fill",--布局高度
    * ^- }1 O3 V# e4 `5 K) }
  39.       dividerHeight="1",--分割线高度9 ]0 z2 O4 @" m# Y! F1 i/ j
  40.       verticalScrollBarEnabled=false,--隐藏滑条
      P, Q7 z1 Q% f
  41.       id="liebiao2",--控件ID
    2 C8 O# z& x2 k( y: v
  42.       layout_alignParentRight=true,--重力居右6 j2 c  x: ?  Q
  43.       layout_centerVertical=true,--将控件置于垂直方向的中心位置
    . `, X3 c( M4 T# ~& t: {% Z3 [
  44.     },6 L5 a1 E0 g8 M' `
  45.   },--相对布局结束% t- K/ t6 ?' O, w8 v- U# s
  46. * z# E1 N( ]$ c- N- l9 d: H5 n
  47. }--线性布局结束- x# H3 t* v/ @& }( i# O6 H
  48. * q' c! Y7 x8 i9 e
  49. activity.setTheme(android.R.style.Theme_DeviceDefault_Light)--设置md主题& }3 j! h8 {$ \! d
  50. activity.setTitle("仿MT管理器相对布局加适配器")
    . V; `" Q5 l3 f; H* b5 H

  51. . W3 X4 h8 {# o$ T# v0 ^! o3 x" I4 t
  52. 2 R9 m9 e8 |0 I$ `. t% p
  53. activity.setContentView(loadlayout(layout))$ C+ N& \9 m0 M* l+ l& n- U( H
  54. 适配布局={
      g+ G% m: N( B# _; R( @
  55.   LinearLayout,--线性布局/ Y7 d2 D2 L0 {/ |2 K  Y# H% V  ^8 Y
  56.   orientation="vertical",--布局方向
    " M- r6 D3 g) q$ h
  57.   layout_width="fill",--布局宽度
    # N2 _9 e0 z: Z  Z9 s, K
  58.   layout_height="wrap",--布局高度' ?7 y7 X- a4 v$ v! d
  59.   gravity="left|center",--重力居左|置中3 ]) j! ^  W; A( Q. V
  60.   padding="10dp",--布局填充
    ( f' a! Z" |9 O) r+ g& a4 a' V2 J6 q$ ?
  61.   {* J5 `4 ?# N2 O; G0 U+ Q- r5 y
  62.     TextView,--文本框控件% a3 n, M4 r/ V: d3 p
  63.     text="标题",--文本内容( E2 @6 w1 D6 h
  64.     textSize="15sp",--文本大小3 P/ x4 t5 z9 t9 R* [+ _$ W0 A
  65.     textColor="#222222",--文本颜色
    ; d6 C' }  k  O
  66.     id="wenben1",--控件ID' x0 E  v) _6 t8 V0 ?
  67.   },
    # R. \/ l. a: O, S
  68.   {
    $ i1 H/ L1 I0 d3 P: S' |& R
  69.     TextView,--文本框控件
    ' U8 b1 L- L$ a8 W$ q5 m
  70.     text="简介",--文本内容9 m8 n3 F6 _) t
  71.     textSize="12sp",--文本大小
    8 R6 B+ |. a8 [+ d, z
  72.     id="wenben2",--控件ID
    7 {* G2 t* Q; O5 b/ E
  73.   },- }/ d1 @3 q9 Q5 @# v) z. U
  74. }--线性布局结束
    2 S; P. T% \# z1 B
  75. - i! {8 T% L# J3 V! {  P
  76. --来自James
    & q: Y# F! b9 b0 }* a. K
  77. -- -------第一个列表
    7 `, {4 i8 n9 _
  78. 构建adp1=LuaAdapter(activity,适配布局)
    ; B$ R- _* L* V2 t8 g" `
  79. liebiao1.setAdapter(构建adp1)
    7 j8 t  ~6 v+ [; }0 r; s
  80. --远端或本地数据
    - o( e) |1 c3 [  p
  81. 总列表a=[[
    $ ~# G$ H4 {. H' n/ X8 C5 ~
  82. 《aaaa》
    7 J1 n; Z- H) P7 @
  83. 【QQ744066461】4 G2 y6 q; K! ~4 L; U" s- D
  84. 8 j$ T& g/ O& ?4 v. n6 ~8 H
  85. 《bbb》
    2 J" V, {$ k7 U+ A3 T5 ?
  86. 【James】. Z# `! b% G; _! p& q- p
  87. " k( H( _$ M0 p/ ^
  88. 《cccccc》' T, W! |; M3 K  a5 U
  89. 【tencent】
    : \; i. o- \) ^7 O( t
  90. ]]0 i  J7 I4 Y! S" L
  91. --开始取值, c: K3 v6 d. F- l4 l1 u
  92. 读取列表a=总列表a:gmatch("《(.-)》\n【(.-)】")--截取格式7 P; t+ D# ], R, T4 i* v
  93. for a,b in 读取列表a do--循环取值) W$ k1 c- r1 B0 W9 m6 w3 d
  94.   构建adp1.add{--构建视图控件
    / W1 D! F: T1 z* U
  95.     wenben1=a,--标题
    ( q7 c9 ~* a3 J5 ?& t  V
  96.     wenben2=b,--简介6 R2 i1 G: {; F, F! r1 a
  97.   }
    : I+ l1 h3 L  u( x0 }2 ~! ]1 o$ R* b1 _1 s
  98. end
    9 s1 f0 B4 X$ A% I; x8 i
  99. --单击适配项目/ S' z6 A2 g) V+ c; {/ I& [( i/ m
  100. liebiao1.onItemClick=function(a,b)
      X" [* a! @2 I" s5 I) x
  101.   print(b.Tag.wenben1.Text)--标题
    & w, N1 |) F2 g% u3 `
  102.   print(b.Tag.wenben2.Text)--简介
    6 W1 v0 Q0 M6 j& V
  103.   return true--返回* d0 p- y0 \. j# Q) p. `
  104. end2 g: P3 {- `* _

  105. , \  I0 j3 x* H. @5 S2 E: W

  106. / g: L$ m  M  l- s# @6 z7 d, r
  107. -- -------第二个列表
    $ |# E* l# y1 ^' m; Y+ c6 A
  108. 构建adp2=LuaAdapter(activity,适配布局)
    7 W7 s9 ~, m& D+ r1 ^; H. x
  109. liebiao2.setAdapter(构建adp2)
    6 B3 c2 J0 V, I9 b1 y$ x; I! H. l
  110. --远端或本地数据
    9 u$ p) D+ r6 X: t9 K
  111. 总列表b=[[
    7 ]  L: ?4 y5 L9 w* ^$ p$ P0 M
  112. 《James》
    6 d; c! X* [: T
  113. 【QQ:744066461】
    5 s1 C0 R/ r5 G" p: E
  114. 7 p6 l) p8 j  ^4 X7 c6 P
  115. 《andlua》
    * `8 D8 s2 v% ]& }& _! v+ t" M
  116. 【nb】0 V3 e& E3 ?+ v9 j0 k

  117. 7 R/ l' A! [4 _; K% L! E
  118. 《可以多加几行测试》
    ) j( W, d( }1 g6 r
  119. 【tencent】
    4 D; c) x6 h  O4 _$ e9 m5 m
  120.   B3 X' c, b3 G  y% ?
  121. 《噜啦噜啦嘞》
    ; c: B& n" y4 A
  122. 【tencent】
    5 l3 p) u, X1 b4 y% ~
  123. ]]
    ! Q$ b# U8 u' S% h* |$ b
  124. --开始取值
    * L" U. v% G8 y/ z1 x! H
  125. 读取列表b=总列表b:gmatch("《(.-)》\n【(.-)】")--截取格式
    ) W% `' X/ d6 w1 d
  126. for a,b in 读取列表b do--循环取值2 b6 S) X3 F0 L5 z& U
  127.   构建adp2.add{--构建视图控件  O' c* b% `5 L8 ^- K- ]( T
  128.     wenben1=a,--标题
    % E% |. |! X) ^+ F* U5 s& }" i. K# F
  129.     wenben2=b,--简介, u. f3 j+ K0 Z; g3 X2 h! k
  130.   }
    4 d9 X  q' \* L# E
  131. end% o4 S. D1 Q( u. A
  132. --单击适配项目; z% L. P0 ~; C6 g- R. h, [
  133. liebiao2.onItemClick=function(a,b)
    ! P5 _% _* g/ _6 }" z3 T- S
  134.   print(b.Tag.wenben1.Text)--标题
    7 x+ Z5 P. a6 `& ~3 c
  135.   print(b.Tag.wenben2.Text)--简介
    ' @$ z7 D8 R! e
  136.   return true--返回
    ( t0 z* U5 H* \" T
  137. end
    ) A! N5 }: y9 ^6 R" V( L# [9 s

  138. : v8 r: p, |" S" v3 \+ V- Q
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|星空社区

GMT+8, 2022-7-1 22:31 , Processed in 0.067541 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表