2013-04-08 4 views
0

Я пытаюсь добавить ListView в динамически, но по какой-то причине он не позволяет мне установить ширину ListView. Мне было интересно, могли бы вы, ребята, помочь мне.Как установить ширину динамически добавленного ListView?

Я пытаюсь построить дизайн колонны (аналогично Plume). Это лучший способ сделать это?

Вот что у меня есть:

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); 

} 
} 
+0

Где добавляется ListView к его родительскому объекту? Обычно вы хотите установить ширину и высоту с помощью LayoutParams в методе add(). – thomas88wp

+0

Он добавляется каждый раз, когда это называется: 'mContainer.addView (mColumns.get (« reditr »). GetColumnView());' – vivatus

+0

Ах, только что понял, что я должен был сделать. Я изменил код на это: 'mContainer.addView (mColumns.get (« reditr »). GetColumnView(), новый ViewGroup.LayoutParams (400, ViewGroup.LayoutParams.MATCH_PARENT);' – vivatus

ответ

0

Вы можете использовать LayoutParams, чтобы установить ширину макета и высоту View при добавлении его к родителю. Добавьте LayoutParams в качестве второго параметра в addView(View, LayoutParams).

Смежные вопросы