解决方案 »

  1.   

    上面放一个layout,在touch事件中,根据坐标值,动态设置layout的高度
      

  2.   


    computeVerticalScrollOffset()这个方法,是用来计算滚动条的位置的,可以用来辅助实现你说的功能,根据当前滚动到的位置来动态的设置view 的Alpha值
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    CustomerListView list = (CustomerListView) findViewById(R.id.listView1);
    TextView view = (TextView) findViewById(R.id.textView1);
    list.setActionView(view);
    ArrayList<String> data = new ArrayList<String>();
    for(int i = 0; i < 30; i++) {
    data.add("position : " + i);
    }

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
    android.R.layout.simple_list_item_1, data);
    list.setAdapter(adapter);
    }
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    public class CustomerListView extends ListView {

    private View mActionView;

    public CustomerListView(Context context) {
    super(context);
    } public CustomerListView(Context context, AttributeSet attrs) {
    super(context, attrs);
    } public CustomerListView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    } @Override
    public int computeVerticalScrollOffset() {
    int offset = super.computeVerticalScrollOffset();
    if(mActionView != null) {
    float alpha = 1f - offset/500f;
    mActionView.setAlpha(alpha > 0 ? alpha : 0);
    }
    Log.d("debug", "###" + offset);
    return offset;
    }

    public void setActionView(View view) {
    mActionView = view;
    }
    }<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.example.demolistview.MainActivity" >    <TextView
            android:id="@+id/textView1"
            android:layout_width="fill_parent"
            android:layout_height="40dp"
            android:background="#234898"
            android:text="@string/hello_world" />    <com.example.demolistview.CustomerListView
            android:id="@+id/listView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textView1" >
        </com.example.demolistview.CustomerListView></RelativeLayout>
      

  3.   

    不知道你是否听一个东西叫headerview