Java 如何设置动态添加的ListView的宽度?

Java 如何设置动态添加的ListView的宽度?,java,android,android-layout,user-interface,Java,Android,Android Layout,User Interface,我试图动态添加ListView,但由于某些原因,它不允许我设置ListView的宽度。我想知道你们能不能帮我一下 我正在尝试建立一个柱设计(类似于羽流)。这是最好的方法吗 以下是我所拥有的: package com.reditr.column; import java.util.HashMap; import android.view.ViewGroup; import android.widget.ListView; import com.reditr.connection.Reddit

我试图动态添加ListView,但由于某些原因,它不允许我设置ListView的宽度。我想知道你们能不能帮我一下

我正在尝试建立一个柱设计(类似于羽流)。这是最好的方法吗

以下是我所拥有的:

package com.reditr.column;

import java.util.HashMap;

import android.view.ViewGroup;
import android.widget.ListView;

import com.reditr.connection.Reddit;

public class ColumnManager {

//some pointers to important vars
private ViewGroup mContainer;
private Reddit mConnection;
private HashMap<String, Column> mColumns;

public ColumnManager(ViewGroup parent, Reddit connection) {

    mContainer = parent;
    mConnection = connection;   
    mColumns = new HashMap<String, Column>();

            //creates listview here
    mColumns.put("reditr", new Column("/r/reditr", null, mConnection, mContainer, "reditr", null));
    buildColumn(mColumns.get("reditr"));

            //.getColumnView() returns the ListView Object
    mContainer.addView(mColumns.get("reditr").getColumnView()); 
    mColumns.get("reditr").run();

    mColumns.put("gaming", new Column("/r/gaming", null, mConnection, mContainer, "gaming", null));
    buildColumn(mColumns.get("gaming"));
    mContainer.addView(mColumns.get("gaming").getColumnView()); 
    mColumns.get("gaming").run();


}

private void buildColumn(Column column) {

    ListView columnView = column.getColumnView();

    columnView.setMinimumWidth(400);
    columnView.setMinimumHeight(ViewGroup.LayoutParams.MATCH_PARENT);

}
}
package com.reditr.column;
导入java.util.HashMap;
导入android.view.ViewGroup;
导入android.widget.ListView;
导入com.reditr.connection.Reddit;
公共类专栏经理{
//一些重要变量的指针
私有视图组mContainer;
私人Reddit McConnection;
私有HashMap mColumns;
公共ColumnManager(视图组父级,Reddit连接){
mContainer=父代;
M连接=连接;
mColumns=newhashmap();
//在此处创建listview
mColumns.put(“reditr”,新列(“/r/reditr”,null,mConnection,mContainer,“reditr”,null));
buildColumn(mColumns.get(“reditr”));
//.getColumnView()返回ListView对象
mContainer.addView(mColumns.get(“reditr”).getColumnView());
mColumns.get(“reditr”).run();
mColumns.put(“gaming”,新列(“/r/gaming”,null,mConnection,mContainer,“gaming”,null));
buildColumn(mColumns.get(“游戏”));
mContainer.addView(mColumns.get(“游戏”).getColumnView());
mColumns.get(“游戏”).run();
}
专用void buildColumn(列){
ListView columnView=column.getColumnView();
columnView.setMinimumWidth(400);
columnView.setMinimumHeight(ViewGroup.LayoutParams.MATCH_PARENT);
}
}

将视图添加到其父视图时,可以使用设置视图的布局宽度和高度。将LayoutParams作为第二个参数添加到
addView(View,LayoutParams)

将ListView添加到其父视图的位置?通常,您希望使用add()方法中的LayoutParams设置宽度和高度。每次调用时都会添加它:
mContainer.addView(mColumns.get(“reditr”).getColumnView()啊,刚刚意识到我必须做什么。我将代码更改为:
mContainer.addView(mColumns.get(“reditr”).getColumnView(),new ViewGroup.LayoutParams(400,ViewGroup.LayoutParams.MATCH_PARENT))好的,添加LayoutParams作为答案。