Androidはヘッダ情報を固定し、動画を絞る(通信録のような)
3809 ワード
半年前、私はまだ大学4年生で、毎日仕事を探して过ごしていました.北京に行って蟻族の生活を体験したいと思っていました.奋然済南を离れました.済南で私达の学校はやはり数えられる良い学校で、北京に行って何もなくて、すべての辛酸は自分で知っているだけで、その时の私はただ开発の方面の仕事を探して、初めて女子学生の劣勢を体得しました...
仕事を探す过程の中で、大部分はすべて実习で、私の予想と少し冲突して、XXグループに行って、人は211985のだけで、仕方がなくて、XX工场に行って通信录のこのような任务を受け取りました...
くだらないことは言わないで、今日のテーマを始めます.
多くのアプリケーションでは、このようなlistview:listviewスライド中にパケットタイトルが上に固定され、2番目のグループがスライドすると、1番目のグループが上にスライドし、次のグループも上縁からスライドするまで固定されるlistview:listviewスライドが見られます.
ある大神たちが書いたのは比較的に深くて、参考にすることができますhttp://blog.csdn.net/guolin_blog/article/details/9033553
私は菜鳥を比較しているので、方法は簡単ですが、実現する機能はあまり悪くなく、主にgitのソースコードを使って、直接呼び出しました.
1.githubからソースをダウンロードし、アドレスをダウンロードするhttps://github.com/JimiSmith/PinnedHeaderListView
2.PinnedHeaderListViewのlibraryをプロジェクトにインポートする
3.プロジェクトを新規作成し、libraryを参照
大まかな内容はこれだけですが、コードを簡単に紹介します.
1.MainActivityのレイアウトファイルに次のコードを追加します.
小さなテクニックを与えてshift+ctrl+Tを押してPinnedHeaderListViewを入力するとzaが見つかります.co.immedia.pinnedheaderlistview.PinnedHeaderListView、直接書けばいいです
2.実はPinnedHeaderListViewが継承しているListViewなので、使い方も悪くないので、次はAdapterを書く必要があります.個人的な習慣はカスタマイズが好きで、自分の考え通りに書くことができますが、アダプタはSectionedBaseAdapterを継承します
3.残りはMainActivityですが、実はListViewの使用と同じです.ここではコードを貼りません
OK、完了
ソースのダウンロードアドレス:http://download.csdn.net/detail/elinavampire/8047885
仕事を探す过程の中で、大部分はすべて実习で、私の予想と少し冲突して、XXグループに行って、人は211985のだけで、仕方がなくて、XX工场に行って通信录のこのような任务を受け取りました...
くだらないことは言わないで、今日のテーマを始めます.
多くのアプリケーションでは、このようなlistview:listviewスライド中にパケットタイトルが上に固定され、2番目のグループがスライドすると、1番目のグループが上にスライドし、次のグループも上縁からスライドするまで固定されるlistview:listviewスライドが見られます.
ある大神たちが書いたのは比較的に深くて、参考にすることができますhttp://blog.csdn.net/guolin_blog/article/details/9033553
私は菜鳥を比較しているので、方法は簡単ですが、実現する機能はあまり悪くなく、主にgitのソースコードを使って、直接呼び出しました.
1.githubからソースをダウンロードし、アドレスをダウンロードするhttps://github.com/JimiSmith/PinnedHeaderListView
2.PinnedHeaderListViewのlibraryをプロジェクトにインポートする
3.プロジェクトを新規作成し、libraryを参照
大まかな内容はこれだけですが、コードを簡単に紹介します.
1.MainActivityのレイアウトファイルに次のコードを追加します.
小さなテクニックを与えてshift+ctrl+Tを押してPinnedHeaderListViewを入力するとzaが見つかります.co.immedia.pinnedheaderlistview.PinnedHeaderListView、直接書けばいいです
<za.co.immedia.pinnedheaderlistview.PinnedHeaderListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
2.実はPinnedHeaderListViewが継承しているListViewなので、使い方も悪くないので、次はAdapterを書く必要があります.個人的な習慣はカスタマイズが好きで、自分の考え通りに書くことができますが、アダプタはSectionedBaseAdapterを継承します
/**
*
*/
package com.thea.pinnedsectiondemo.adapter;
import java.util.List;
import com.thea.pinnedsectiondemo.R;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import za.co.immedia.pinnedheaderlistview.SectionedBaseAdapter;
/**
* @author thea
*
* 2014-10-16
*/
public class MyPinnedListViewAdapter extends SectionedBaseAdapter{
private List<String> sectionList;
private List<String> list;
private Context context;
public MyPinnedListViewAdapter(Context context,List<String> sectionList, List<String> list) {
super();
this.sectionList = sectionList;
this.list = list;
this.context = context;
}
@Override
public Object getItem(int section, int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int section, int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public int getSectionCount() {
// TODO Auto-generated method stub
return sectionList.size();
}
@Override
public int getCountForSection(int section) {
// TODO Auto-generated method stub
return list.size();
}
@Override
public View getItemView(int section, int position, View convertView,
ViewGroup parent) {
ViewHold hold=null;
if (convertView==null) {
hold=new ViewHold();
convertView=LinearLayout.inflate(context, R.layout.list_item, null);
hold.tv_item=(TextView) convertView.findViewById(R.id.tv_item);
convertView.setTag(hold);
} else {
hold=(ViewHold) convertView.getTag();
}
hold.tv_item.setText(list.get(position));
return convertView;
}
@Override
public View getSectionHeaderView(int section, View convertView,
ViewGroup parent) {
ViewHold hold=null;
if (convertView==null) {
hold=new ViewHold();
convertView=LinearLayout.inflate(context, R.layout.section_item, null);
hold.tv_section=(TextView) convertView.findViewById(R.id.tv_section_item);
convertView.setTag(hold);
} else {
hold=(ViewHold) convertView.getTag();
}
hold.tv_section.setText(sectionList.get(section));
return convertView;
}
class ViewHold{
private TextView tv_section,tv_item;
}
}
3.残りはMainActivityですが、実はListViewの使用と同じです.ここではコードを貼りません
OK、完了
ソースのダウンロードアドレス:http://download.csdn.net/detail/elinavampire/8047885