Java 如何设置动态添加的ListView的宽度?
我试图动态添加ListView,但由于某些原因,它不允许我设置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
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作为答案。