tweet

Android 5.0 マテリアルデザイン(material design) RecyclerView, CardView 実装メモ --2014-11-18


さて、マテリアルデザイン関係で。(material design)
一部Viewの実装メモです。

Android5対応の修正メモ
http://knaka0209.blogspot.jp/2014/11/android5-2014-11-18.html
のViewコンテンツ一部です。

Github
https://github.com/kuc-arc-f/recycle3

参考URL:
RecyclerView https://developer.android.com/samples/RecyclerView/index.html
CardView https://developer.android.com/samples/CardView/index.html

[内容]
RecyclerView 、CardView
を含んだ、丸角行のリストViewです。
Fragment実装でなく、Activityに実装してます。
各行を押した時のイベント処理と、
遷移先の画面などを追加。

4x対応で、ShadowなどZ軸関係の描画処理は無し。



[実装など]
build.gradle ,ライブラリのimport必要
========================
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.0'
    compile "com.android.support:gridlayout-v7:21.+"
    compile "com.android.support:cardview-v7:21.+"

    compile "com.android.support:recyclerview-v7:+"
}
========================

RecyclerView ですが
ListViewのメソッドとは、全く異なり
onCreateViewHolder
onBindViewHolder
などで、描画します。

========================
CustomAdapter.java
行のinflate時に、レイアウトXMLのサイズ値が
適用されなかったので、APIでLayoutParams調整してますが。
不要な場合は、削除して構いません。

   public ViewHolder onCreateViewHolder(ViewGroup parent, int position)
    {
        LayoutInflater inf = (LayoutInflater) parent.getContext().getSystemService( parent.getContext().LAYOUT_INFLATER_SERVICE);;
        View ll = (View) inf.inflate(R.layout.fragment_card_view, null);
        LinearLayout.LayoutParams param_ll =new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT );
        ll.setLayoutParams(param_ll);

        ViewHolder vh = new ViewHolder( ll );
        return vh;
    }
========================

CardView
Radius (丸角の大きさ) =8dpにしてます。
===================================
fragment_card_view.xml
    <android.support.v7.widget.CardView
        android:id="@+id/cardview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        card_view:cardBackgroundColor="@color/cardview_initial_background"
        card_view:cardCornerRadius="8dp"
        android:layout_marginLeft="@dimen/margin_large"
        android:layout_marginRight="@dimen/margin_large"
===================================

*)
丸角の描画処理など、カンタンにできて良いですね。
SDK21対応のShadow(影)など、
追加する事でマテリアルぽく仕上げできそうです。(次回、チャレンジ)



コメント

FACEBOOK

人気の投稿