大虾们好!
我在.xml里定义了一个listview,如下:
<ListView
android:id="@+id/mainList"
android:width="wrap_content"
android:height="wrap_content"
/>在代码里想把listView的宽度设置为屏幕的一半:
mainList.setLayoutParams(new ListView.layoutParams(width,height));//width height我已经正确计算出来了
结果,代码运行到这里就出错了请问大虾们,是不是不能够这么设置?有没有更好的方法让listView的宽度只有当前屏幕的一半那么宽?
谢谢!

解决方案 »

  1.   

    ?你是想用xml来创建list,还是代码动态创建list?
    如果是代码创建,那你就要new list,然后添加layout参数,最后将list添加到parentlayout中。如果要xml创建,那就在setContentView之前,动态去修改list的height
      

  2.   

    修改配置参数就可以实现,还是XML好点。
      

  3.   

    嗯,试了一下,在设置contentview之前就动态设置参数,还是死机呢!我现在怀疑这个语句有问题呢:
    mainList.setLayoutParams(new ListView.layoutParams(width,height));
      

  4.   

    mSurfaceView.setLayoutParams(new AbsoluteLayout.LayoutParams(800,320,0,85));  //参数依次为width、height、scrollX、scrollY这个是我做视频播放全屏切换时用的,可以参考一下!
      

  5.   

    再setContentView之前,能获得list对象吗?如果不能获取,如何修改?
      

  6.   

    这个很简单只要设置  //获取屏幕像素宽度  DisplayMetrics dMetrics = new DisplayMetrics();
      getWindowManager().getDefaultDisplay().getMetrics(dMetrics);
     ScreenWIDTH = dMetrics.widthPixels;  mainList.getLayoutParams().width=ScreenWIDTH/2