主界面 main.xml
<ImageView android:id="@+id/img1" 
android:layout_width="fill_parent" 
android:layout_height="148dip"
android:layout_marginTop="0dip"
android:scaleType="fitXY"
/>
<ListView
android:id="@+id/listView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
android:scrollbars="vertical"
android:background="#ffffff"
android:divider="#aaaaaa"
android:dividerHeight="1px"/>listview子界面
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="24dip"
android:layout_marginTop="6dip"
android:layout_marginBottom="2dip"
android:textSize="18px"
android:singleLine="true"
android:textColor="#333333" />
<TextView
android:id="@+id/navinfo"
android:layout_width="wrap_content"
android:layout_height="36dip"
android:textSize="14px"
android:textColor="#888888" />现界面可正常运行,在滚动listview中记录时,img1这块不会滚动,
现需:在滚动listview中记录时,img1也要随界面一起滚动,如何实现呀,thanks

解决方案 »

  1.   

    把imageview放到listview第一行,在BaseAdapter的getView判断下是第一行的话显示图片,其他显示正常布局。
      

  2.   

    public View getView(int position, View view, ViewGroup parent) {
    if(view == null){
    view = getLayoutInflater().inflate(R.layout.news_list_item, null);
    }
    //新闻标题
    TextView tvTitle = (TextView)view.findViewById(R.id.title);
    tvTitle.setText(newsItems.get(position).getTitle());
    //新闻内容
    TextView tvContent = (TextView)view.findViewById(R.id.navinfo);
    tvContent.setText(newsItems.get(position).getNavinfo());


    return view;
    }
    这是我的getView, 如何改?楼上的帮忙 thanks
      

  3.   

    用帧布局吧,listview写在上面,imageview写在下面覆盖住顶端即可
      

  4.   

    多谢大家的,
    1楼的,在吗,帮我看下
    3楼的,能给点DEMO吗,THANKS
      

  5.   

    你把imageView放在main.xml 没放在listView指定控件布局xml中 listView当然没imageVIEW 更不用说滚动了吧
      

  6.   

    5楼的,我应该怎么弄呢,你能说详细些,或给个demo吗  thanks
      

  7.   

    你的意思是说 ImageView android:id="@+id/img1" 要随着listview 的滚动而 滚动?还是说..
    你的img1要一直出现在界面.
      

  8.   

    回8楼的,需求是 ImageView android:id="@+id/img1" 要随着listview 的滚动而 滚动大家帮我看下,怎么实现呀
      

  9.   


    可以试试 在listview外表加一层RelativeLayout.让img1也在RelativeLayout里面.在img1设置android:layout_alignParentTop="true"
    应该可以.
    试试吧..我没试过这么做.
      

  10.   

    回10楼的,
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
     <ImageView android:id="@+id/img1" 
    android:layout_width="fill_parent" 
    android:layout_height="148dip"
    android:scaleType="fitXY"
    android:layout_alignParentTop="true"
    />
    <ListView
    android:id="@+id/listView01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:drawSelectorOnTop="false"
    android:scrollbars="vertical"
    android:background="#ffffff"
    android:divider="#aaaaaa"
    android:layout_below="@id/img1"
    android:dividerHeight="1px"/> </RelativeLayout>
    加了relativelayout,也没效果,大家再帮我想下
      

  11.   

    public View getView(int position, View view, ViewGroup parent) {
    if(view == null){
    view = getLayoutInflater().inflate(R.layout.news_list_item, null);
    }
    //新闻标题
    TextView tvTitle = (TextView)view.findViewById(R.id.title);
    tvTitle.setText(newsItems.get(position).getTitle());
    //新闻内容
    TextView tvContent = (TextView)view.findViewById(R.id.navinfo);
    tvContent.setText(newsItems.get(position).getNavinfo());
    return view;
    }
    positon是0的时候换成你想要的布局 行不?
      

  12.   

    对listview的子布局部分建两个布局文件,根据position的值来判断使用哪个,position为0的时候用第一个,不为0的时候用第二个,下面是测试代码
    public class Test_0209Activity extends Activity {
    private String items[] = {"a","b","c","d","e","f","g","h","i","j","k"};
    private ListView lv = null;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            lv = (ListView)findViewById(R.id.listView1);
            lv.setAdapter(new MyAdapter());
            
        }
        class MyAdapter extends BaseAdapter{
         LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
    public int getCount() {
                           //这里注意长度在数组基础上+1
    return items.length+1;
    } public Object getItem(int arg0) {
    return null;
    } public long getItemId(int position) {
    return 0;
    } public View getView(int position, View convertView, ViewGroup parent) {
    View v = null;

    if(position == 0){
                                  //我把v的背景设置成了图片,测试可用,加入imageview也可以
    v = inflater.inflate(R.layout.view1, null);
    return v;
    }else{
                                   //position不为0了,切换布局文件
           v = inflater.inflate(R.layout.view2, null);

    TextView tv = (TextView)v.findViewById(R.id.textView1);
    tv.setText(items[position-1]);
    return v;

    }

    }

        
        }
    }
      

  13.   

    main布局里就不要再放imageview了,放到view1里
      

  14.   

    直接把上面的imageview加到listview 的head不就行了。
      

  15.   

    listview 的item布局用framelayout,底层是imageview,上层是textview,通过position判断是要显示哪一个,隐藏哪一个。lz得自己揣摩,多看看就了解了。
      

  16.   

       我这里没有出现类似的问题啊,楼主是不是把主文件的imageview看成是listview中的了,如果还不行,发下代码大家瞅瞅,一起给你解决
      

  17.   

    3l的回复说错了,没看清楚需求。楼主的代码中,imageview是不会滚动的,但会一直在顶端是吧?你想要的是一种伪滚动效果吗?好像很难实现的样子= =
      

  18.   

    在imageview和listview外面加个ScrollView,然后在代码中把listview的item高度设置个固定值
      

  19.   

    其实直接使用addHeaderView这个方法不就可以了么?何必那么折腾呢