show notes in card view

This commit is contained in:
houxg
2016-12-05 18:24:26 +08:00
parent 6376f40a7d
commit a18f7d09a3
4 changed files with 116 additions and 59 deletions

View File

@@ -30,7 +30,7 @@ import org.houxg.leamonax.service.NoteService;
import org.houxg.leamonax.utils.DisplayUtils; import org.houxg.leamonax.utils.DisplayUtils;
import org.houxg.leamonax.utils.NetworkUtils; import org.houxg.leamonax.utils.NetworkUtils;
import org.houxg.leamonax.utils.ToastUtils; import org.houxg.leamonax.utils.ToastUtils;
import org.houxg.leamonax.widget.DashDividerDecoration; import org.houxg.leamonax.widget.DividerDecoration;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@@ -79,11 +79,7 @@ public class NoteFragment extends Fragment implements NoteAdapter.NoteAdapterLis
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(container.getContext()); RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(container.getContext());
mNoteListView.setLayoutManager(layoutManager); mNoteListView.setLayoutManager(layoutManager);
mNoteListView.setItemAnimator(new DefaultItemAnimator()); mNoteListView.setItemAnimator(new DefaultItemAnimator());
mNoteListView.addItemDecoration(new DividerDecoration(DisplayUtils.dp2px(container.getContext(), 8)));
int dashGap = DisplayUtils.dp2px(container.getContext(), 4);
int dashWidth = DisplayUtils.dp2px(container.getContext(), 8);
int height = DisplayUtils.dp2px(container.getContext(), 1);
mNoteListView.addItemDecoration(new DashDividerDecoration(0xffa0a0a0, dashGap, dashWidth, height));
mAdapter = new NoteAdapter(this); mAdapter = new NoteAdapter(this);
mNoteListView.setAdapter(mAdapter); mNoteListView.setAdapter(mAdapter);

View File

@@ -0,0 +1,22 @@
package org.houxg.leamonax.widget;
import android.graphics.Rect;
import android.support.v7.widget.RecyclerView;
import android.view.View;
public class DividerDecoration extends RecyclerView.ItemDecoration {
private int mDividerSize;
public DividerDecoration(int dividerSize) {
mDividerSize = dividerSize;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
super.getItemOffsets(outRect, view, parent, state);
int pos = parent.getChildAdapterPosition(view);
int top = pos == 0 ? mDividerSize : 0;
outRect.set(mDividerSize, top, mDividerSize, mDividerSize);
}
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="6dp" />
<solid android:color="#FFB74D" />
</shape>

View File

@@ -1,67 +1,101 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="?android:attr/selectableItemBackground"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-medium"
android:textColor="@color/primary_text_light"
android:textSize="20sp"
tools:text="Leanote API" />
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:background="?android:attr/selectableItemBackground"
android:orientation="horizontal"> android:orientation="vertical">
<TextView <LinearLayout
android:id="@+id/tv_dirty" android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="8dp" android:orientation="vertical"
android:fontFamily="sans-serif-light" android:paddingBottom="8dp"
android:text="@string/changed" android:paddingEnd="16dp"
android:textColor="#FFA726" android:paddingStart="16dp"
android:textSize="12sp" /> android:paddingTop="16dp">
<TextView <TextView
android:id="@+id/tv_update_time" android:id="@+id/tv_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="sans-serif-light" android:fontFamily="sans-serif-medium"
android:textColor="@color/hint_text_light" android:textColor="@color/primary_text_light"
android:textSize="12sp" android:textSize="20sp"
tools:text="9-18 23:23" /> tools:text="Leanote API" />
<TextView <TextView
android:id="@+id/tv_notebook" android:id="@+id/tv_content"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:fontFamily="sans-serif"
android:maxHeight="120dp"
android:maxLines="4"
android:textColor="#9E9E9E"
android:textSize="14sp"
tools:text="Enim consequat enim pariatur id anim Ut Excepteur dolor in laborum incididunt veniam quis proident. in consequat aliquip in minim adipisicing exercitation sunt sed qui pariatur consequat commodo ea do." />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="#BDBDBD" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:gravity="center_vertical"
android:fontFamily="sans-serif-medium" android:orientation="horizontal"
android:textColor="@color/hint_text_light" android:paddingBottom="8dp"
android:textSize="12sp" android:paddingEnd="16dp"
tools:text="Gradle" /> android:paddingStart="16dp"
android:paddingTop="8dp">
<TextView
android:id="@+id/tv_dirty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:background="@drawable/shape_changed"
android:fontFamily="sans-serif"
android:paddingBottom="2dp"
android:paddingEnd="4dp"
android:paddingStart="4dp"
android:paddingTop="2dp"
android:text="@string/changed"
android:textColor="#fff"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_update_time"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fontFamily="sans-serif-light"
android:textColor="@color/hint_text_light"
android:textSize="12sp"
tools:text="9-18 23:23" />
<TextView
android:id="@+id/tv_notebook"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-medium"
android:textColor="@color/hint_text_light"
android:textSize="12sp"
tools:text="Gradle" />
</LinearLayout>
</LinearLayout> </LinearLayout>
<TextView
android:id="@+id/tv_content" </android.support.v7.widget.CardView>
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:fontFamily="sans-serif"
android:maxHeight="120dp"
android:maxLines="4"
android:textColor="#9E9E9E"
android:textSize="14sp"
tools:text="Enim consequat enim pariatur id anim Ut Excepteur dolor in laborum incididunt veniam quis proident. in consequat aliquip in minim adipisicing exercitation sunt sed qui pariatur consequat commodo ea do." />
</LinearLayout>