Ah, so applying a Tweak[AbsListView] would be the same as wiring
a ListableListAdapter?
On Sunday, November 30, 2014 6:25:07 PM UTC-5, Nick Stanchenko wrote:
>
> Hi,
>
> The way I understand tweaks is that they are mutable effects to
>> layouts/views.
>>
>
> That’s correct, although I would rather say “mutating effects”, as tweaks
> themselves are immutable.
>
>
>> In this case, is a ListAdapterTweak also a method to modify the display
>> of the ListAdapeter? If so, where can I see what it actually does and how
>> can I compose them?
>>
>
> listAdapterTweak returns a Tweak[AbsListView], which you can apply to any
> AbsListView:
>
> // create a tweak
> val tweak = userListable.listAdapterTweak(User("Terry"), User("Graham"))
> // myListView is a ListView slot
> var myListView = slot[ListView]
>
> // wire myListView to something...
>
> runUi {
> // apply the tweak
> myListView <~ tweak
> }
>
> If you just want the adapter, there is also a listAdapter method, which
> returns it:
>
> val adapter = userListable.listAdapter(User("Terry"), User("Graham"))
> runUi {
> myListView <~ macroid.contrib.ListTweaks.adapter(adapter)
> }
>
> The second example is actually how listAdapterTweak is implemented
> internally :)
> https://github.com/macroid/macroid-viewable/blob/master/src/main/scala/macroid/viewable/Listable.scala#L168
>
> Hope this helps,
> Nick
>
>
>> On Thursday, July 31, 2014 6:41:36 PM UTC-4, Nick Stanchenko wrote:
>>>
>>> Hi,
>>>
>>> Here’s a new library I wrote under the *Macroid* umbrella project:
>>> Macroid-Viewable: http://macroid.github.io/related/Viewable.html
>>> It provides three main advantages:
>>>
>>> - A clear way to declare how your data should be displayed
>>> - Boilerplate-free ListAdapters and PagerAdapters
>>> - Macroid’s trademark emphasis on composability
>>>
>>> A quick example of displaying Alice and Bob in a list (with font size
>>> proportional to their age):
>>>
>>> import macroid._
>>> import macroid.FullDsl._
>>> import macroid.viewable._
>>>
>>> // our data type
>>> case class User(name: String, age: Int)
>>>
>>> // defines how to view a User in a list
>>> implicit def userListable(implicit ctx: ActivityContext, appCtx:
>>> AppContext) =
>>> Listable[User].tw {
>>> // the layout is a TextView
>>> w[TextView]
>>> } { user ⇒
>>> // to display a user, we tweak the layout
>>> text(user.name) + TextTweaks.size(user.age + 10)
>>> }
>>>
>>> // now we simply tweak the ListView
>>> myListView <~ List(User("Alice", 12), User("Bob", 23)).listAdapterTweak
>>>
>>> Please follow the link above for more documentation and cool features.
>>> Also note that I’ve just submitted the library to the jCenter repo, but
>>> until it arrives there, you might need to use the following resolver:
>>>
>>> resolvers += "stanch@Bintray" at "http://dl.bintray.com/stanch/maven/"
>>>
>>> Looking forward to hearing your feedback,
>>> Nick
>>>
>>>
--
You received this message because you are subscribed to the Google Groups
"scala-on-android" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.