Skip to content

Commit b8b9cde

Browse files
committed
Update demo
1 parent aed9b4c commit b8b9cde

File tree

1 file changed

+54
-10
lines changed

1 file changed

+54
-10
lines changed

Demo/app/src/main/swift/MainActivity.swift

Lines changed: 54 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ open class MainActivity: AndroidApp.Activity {
2121

2222
lazy var listView = ListView(self)
2323

24+
lazy var recyclerView = RecyclerView(self)
25+
2426
var runnable: AndroidJavaLang.Runnable!
2527

2628
//lazy var timer = AndroidJavaUtil.Timer()
@@ -49,13 +51,7 @@ private extension MainActivity {
4951
startMainRunLoop()
5052
setRootView()
5153

52-
// update view on timer
53-
Task { [weak self] in
54-
while let self {
55-
await self.updateTextView()
56-
try? await Task.sleep(for: .seconds(1))
57-
}
58-
}
54+
5955
}
6056

6157
func runAsync() {
@@ -80,17 +76,27 @@ private extension MainActivity {
8076
}
8177

8278
func setRootView() {
79+
setRecyclerView()
80+
}
81+
82+
func setTextView() {
8383
setRootView(textView)
84-
Task {
85-
await updateTextView()
84+
// update view on timer
85+
Task { [weak self] in
86+
while let self {
87+
await self.updateTextView()
88+
try? await Task.sleep(for: .seconds(1))
89+
}
8690
}
8791
}
8892

8993
func setListView() {
9094
let items = [
9195
"Row 1",
9296
"Row 2",
93-
"Row 3"
97+
"Row 3",
98+
"Row 4",
99+
"Row 5"
94100
]
95101
let layout = try! JavaClass<R.layout>()
96102
let resource = layout.simple_list_item_1
@@ -106,6 +112,44 @@ private extension MainActivity {
106112
setRootView(listView)
107113
}
108114

115+
func setRecyclerView() {
116+
let items = [
117+
"Row 1",
118+
"Row 2",
119+
"Row 3",
120+
"Row 4",
121+
"Row 5"
122+
]
123+
let callback = RecyclerViewAdapter.Callback(
124+
onCreateViewHolder: { (parent, viewType) in
125+
let context = parent.getContext()
126+
//let linearLayout = LinearLayout(context)
127+
//let textView = TextView(context)
128+
//linearLayout.addView(textView)
129+
//parent.addView(linearLayout)
130+
let listItemView = try! JavaClass<LayoutInflater>()
131+
.from(context)
132+
.inflate(JavaClass<R.layout>().simple_list_item_1, parent, false)!
133+
134+
return RecyclerViewAdapter.ViewHolder(listItemView, view: listItemView)
135+
},
136+
onBindViewHolder: { (holder, position) in
137+
guard let viewHolder = holder.as(RecyclerViewAdapter.ViewHolder.self) else {
138+
return
139+
}
140+
let data = items[Int(position)]
141+
viewHolder.itemView.as(TextView.self)?.text = data
142+
},
143+
getItemCount: {
144+
Int32(items.count)
145+
}
146+
)
147+
let adapter = RecyclerViewAdapter(callback)
148+
recyclerView.setLayoutManager(LinearLayoutManager(self))
149+
recyclerView.setAdapter(adapter)
150+
setRootView(recyclerView)
151+
}
152+
109153
@MainActor
110154
func updateTextView() {
111155
log("\(self).\(#function)")

0 commit comments

Comments
 (0)