如何在屏幕顶部修复布局

时间:2014-01-04 11:02:07

标签: android android-layout scrollview

我在scrollview中有一个线性布局,我希望第三个元素粘在父元素的顶部并保持可见而其他元素正在向上滚动,当它向下滚动时,它会返回到它#39;原来的位置。我怎么能处理这样的偶数?

<ScrollView>
    <LinearLayout>
       <View1 />
       <View2 />
       <View3 />
       <View4 />
       <View5 />
        .
        .
        .
       <Viewn />
    <LinearLayout>
</ScrollView>

当滚动时,当View3击中ScrollView的头部时,我希望它保持在顶部和其他元素下方以在其下滚动。然后向下滚动,当它返回到正确的位置时。

我想要做的是定义一个&#34;去掉&#34;在ScrollView之前查看,以便当View到达头部时,然后我可以看到View,然后在向下滚动时再次移动它。 我不知道如何实现这一点。

1 个答案:

答案 0 :(得分:-1)

<ScrollView>
<LinearLayout>
   <View1 />
   <View2 />
   <View3 />
   <View4 />
   <View5 />
    .
    .
    .
   <Viewn />
<LinearLayout>
</ScrollView>

 public class List1Adapter extends BaseAdapter implements AbsListView.OnScrollListener{

    private boolean isFix = false; 
    private Object mData[];
    private int firstVisibleItem = 0;

    public List1Adapter(Object data[]) {
        this.mData = data;
    }

    @Override
public int getCount() {
    if(null != mData) return mData.length + 1;
}


@Override
public Object getItem(int position) {
    return mData[position];
}

    @Override
public View getView(int position, View convertView, ViewGroup viewGroup) {
        Object dataItem;
        if(isFix && firstVisibleItem >= topViewIndex && position == firstVisibleItem) {
           dataItem = getItem(topViewIndex); 
        }
        if(null == convertView) {
            convertView = new View();
        }

        //render with your data.
    }

     void  onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount){

          if(visibleItemCount > 0 && firstVisibleItem >= topViewIndex) {
              isFix = true;
          }else {
              isFix = false;
          }             
          this.firstVisibleItem = firstVisibleItem;
     }

 }
你可以这样做吗?