package org.robobinding.widget.listview; import org.robobinding.widget.adapterview.SubViewAttributesStrategy; import android.content.Context; import android.view.View; import android.widget.AbsListView; import android.widget.LinearLayout; import android.widget.ListView; /** * * @since 1.0 * @version $Revision: 1.0 $ * @author Cheng Wei */ public class HeaderAttributes implements SubViewAttributesStrategy<ListView> { static final String HEADER_LAYOUT = "headerLayout"; static final String HEADER_PRESENTATION_MODEL = "headerPresentationModel"; static final String HEADER_VISIBILITY = "headerVisibility"; @Override public String layoutAttribute() { return HEADER_LAYOUT; } @Override public String subViewPresentationModelAttribute() { return HEADER_PRESENTATION_MODEL; } @Override public String visibilityAttribute() { return HEADER_VISIBILITY; } @Override public void addSubView(ListView listView, View subView, Context context) { LinearLayout outerContainer = new LinearLayout(context); AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.WRAP_CONTENT); outerContainer.setLayoutParams(layoutParams); outerContainer.setOrientation(LinearLayout.VERTICAL); outerContainer.addView(subView); listView.addHeaderView(outerContainer); } @Override public HeaderVisibility createVisibility(ListView listView, View subView) { return new HeaderVisibility(subView); } }