Implementation of List Item from Material Design guidelines.
<com.lucasurbas.listitemview.ListItemView
android:id="@+id/list_item_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:liv_title="@string/title"
app:liv_subtitle="@string/subtitle"
app:liv_icon="@drawable/ic_call_24dp"
app:liv_menu="@menu/single_action_menu"
app:liv_multiline="false"
app:liv_displayMode="icon"/>
Right action icon is configured from xml menu file similar to toolbar configuration.
app:liv_menu="@menu/multiple_action_menu"
xml file
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_heart"
android:icon="@drawable/ic_favorite_24dp"
android:title="@string/action_heart"
app:showAsAction="always" />
<item
android:id="@+id/action_info"
android:icon="@drawable/ic_info_24dp"
android:title="@string/action_info"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_remove"
android:title="@string/action_remove"
app:showAsAction="never" />
</menu>
add onClick listener
listItemView.setOnMenuItemClickListener(new ListItemView.OnMenuItemClickListener() {
@Override
public void onActionMenuItemSelected(final MenuItem item) {
// click
}
});
app:liv_paddingStart="@dimen/padding_start"
app:liv_paddingEnd="@dimen/padding_end"
app:liv_keyline="@dimen/keyline"
By default liv_paddingStart
and liv_paddingEnd
are set to 16dp on mobile and 24dp on tablet.
Keyline liv_keyline
is a line to which text will be offset when icon or avatar is present. Default value is 72dp on mobile and 80dp on tablet.
The view is RTL ready.
It is possible to offset text without setting icon, by using liv_forceKeyline flag
app:liv_forceKeyline="true"
app:liv_displayMode="circularIcon"
app:liv_displayMode="avatar"
next you can get the ImageView
and download into it an image using library of your choice (Picasso, Glide, etc).
Picasso.with(context) .load(avaratUrl) .placeholder(R.drawable.placeholder) .transform(new CropCircleTransform()) .into(listItemView.getAvatarView());
Title color uses ?android:textColorPrimary
and Subtitle uses ?android:textColorSecondary
. All icons by default are also tinted
with ?android:textColorSecondary
color. This means view can handle respectfully light and dark theme.
To change icons color use accordingly:
app:liv_iconColor="@color/icon_color"
app:liv_circularIconColor="@color/icon_color"
app:liv_menuActionColor="@color/icon_color"
app:liv_menuOverflowColor="@color/icon_color"
dependencies {
compile 'com.lucasurbas:listitemview:1.1.1'
}
Copyright 2017 Lucas Urbas
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.