Android PinnedSectionListView 收縮

來源:互聯網
上載者:User

Android PinnedSectionListView 收縮

網上開源項目:https://github.com/beworker/pinned-section-listview,該項目用的是ArrayAdapter()..不太適合我,稍作修改,仿的介面

PinnedSectionListView修改了一行代碼,不然會報錯,代碼如下

void createPinnedShadow(int position) {}》》

 

if (layoutParams == null) {   //layoutParams = (LayoutParams) generateDefaultLayoutParams();layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);    pinnedView.setLayoutParams(layoutParams);}


 

 

具體代碼AdapterListView:

 

package pinneactivity.example.ui;import java.util.ArrayList;import pinneactivity.example.ui.PinnedSectionListView.PinnedSectionListAdapter;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;/* *  * This is company of adapter *  * @author YangWenlong */public class AdapterListView extends BaseAdapter implements PinnedSectionListAdapter{private ArrayList list;private Context context;public ArrayList getList() {return list;}public void setList(ArrayList list) {if(list!=null){this.list = list;}else{list=new ArrayList();}}public AdapterListView(Context context,ArrayList list){this.setList(list);this.context=context;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn list.size();}@Overridepublic Bean getItem(int position) {// TODO Auto-generated method stubreturn list.get(position);}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View converView, ViewGroup viewGrop) {// TODO Auto-generated method stubViewHolder vh=null;if(converView==null){vh=new ViewHolder();converView=LayoutInflater.from(context).inflate(R.layout.item, null);vh.company_item=(TextView)converView.findViewById(R.id.title);vh.image=(ImageView)converView.findViewById(R.id.imageView1);converView.setTag(vh);}else{vh=(ViewHolder) converView.getTag();}Bean bean=getItem(position);vh.company_item.setText(bean.text);if (bean.type == Bean.SECTION) {vh.company_item.setBackgroundResource(R.drawable.bao_headview_bg);vh.image.setVisibility(View.GONE);}else{vh.company_item.setBackgroundResource(R.drawable.details_layout_bg);vh.image.setVisibility(View.VISIBLE);}return converView;}@Overridepublic boolean isItemViewTypePinned(int viewType) {// TODO Auto-generated method stubreturn viewType == Bean.SECTION;//0是標題,1是內容}@Overridepublic int getViewTypeCount() {return 2;//2種view的類型 baseAdapter中得方法}@Overridepublic int getItemViewType(int position) {return ((Bean)getItem(position)).type;}public void refresh(ArrayList arr){        setList(arr);        notifyDataSetChanged();    }}

HeadView:

 

 

package pinneactivity.example.ui;import android.app.Activity;import android.view.View;import android.view.View.OnClickListener;import android.widget.LinearLayout;import android.widget.Toast;/* * Fail view *  * @author YangWenlong */public class HeadView implements OnClickListener{private View view = null;private Activity activity;private LinearLayout newFriends;private LinearLayout grop;private LinearLayout tag;private LinearLayout publicNumber;private static HeadView headView = null;public static HeadView getInstance(Activity activity) {headView = new HeadView(activity);return headView;}public HeadView(Activity activity) {view=activity.getLayoutInflater().inflate(R.layout.item_head, null);this.activity=activity;}public HeadView initialization(){        newFriends=(LinearLayout)view.findViewById(R.id.layout_new);        grop=(LinearLayout)view.findViewById(R.id.layout_group);        tag=(LinearLayout)view.findViewById(R.id.layout_tag);        publicNumber=(LinearLayout)view.findViewById(R.id.layout_public);        newFriends.setOnClickListener(this);        grop.setOnClickListener(this);        tag.setOnClickListener(this);        publicNumber.setOnClickListener(this);return headView;}public View getView(){return view;}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif(v==newFriends){Toast.makeText(activity, 新朋友, Toast.LENGTH_SHORT).show();}else if(v==grop){Toast.makeText(activity, 群聊, Toast.LENGTH_SHORT).show();}else if(v==tag){Toast.makeText(activity, 標籤, Toast.LENGTH_SHORT).show();}else if(v==publicNumber){Toast.makeText(activity, 公眾號, Toast.LENGTH_SHORT).show();}}}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.