Как сделать видимыми все виджеты из одной строки (RowTable)? - PullRequest
2 голосов
/ 19 февраля 2011

Я написал код ниже, но кнопка не отображается, потому что я установил FILL_PARENT на панели layoutParametrs. Как я мог это исправить, не используя XML?

    TableRow        myLayout    = new TableRow      (this);
    myLayout.setAlwaysDrawnWithCacheEnabled(true);
    TextView        text        = new TextView      (this);
        text.setText("Test: ");
    SeekBar         bar         = new SeekBar       (this);
    ToggleButton    button      = new ToggleButton  (this);
    myLayout.addView(   text    , new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
    myLayout.addView(   bar     , new TableRow.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
    myLayout.addView(   button  , new TableRow.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));

Если FILL_PARENT установлен для бара

If FILL_PARENT set for bar

Если нет

If not set

оба варианта неверны

Ответы [ 2 ]

2 голосов
/ 19 февраля 2011

Когда мне нужно заполнить строку несколькими элементами, я обычно использую layout_weight и настройку ширины fill_parent. Это распределяет всю ширину строки по пропорциям, для которых вы устанавливаете значения веса.

Поскольку вы делаете это в коде, а не в XML, посмотрите на конструктор LayoutParams, который принимает третий параметр. Это соответствует layout_weight:

LayoutParams - int, int, float

1 голос
/ 19 февраля 2011

Попробуйте использовать WRAP_CONTENT и весовой параметр, подобный этому.

myLayout.addView(   text    , new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,5));
myLayout.addView(   bar     , new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,10));
myLayout.addView(   button  , new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,85));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...