Android - Установите ширину FrameLayout динамически - PullRequest
3 голосов
/ 26 февраля 2012

У меня есть FrameLayout, который я хочу увеличивать со временем.

Я реализовал интерфейс Runnable.

public void run() {
    time_value++;

    FrameLayout fl_dateTime = (FrameLayout)findViewById(R.id.game_DateTime);
        LayoutParams lp_fl_dateTime = fl_dateTime.getLayoutParams();

    lp_fl_dateTime.width = time_value;

    handler.postDelayed(this, 100);
}

Почему это не работает? О_О

Ответы [ 2 ]

3 голосов
/ 26 февраля 2012

Вам необходимо установить параметры макета обратно после их изменения.

View#setLayoutParams(ViewGroup.LayoutParams lp)

0 голосов
/ 03 января 2013

Я смог сделать это, установив начальный размер кадра на 0dp, а затем просто установив minWidth на то, что я хотел.

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="0dp"
          android:layout_height="fill_parent"
          android:background="@android:color/black"
          android:id="@id/layout"
          android:minHeight="50dp"
          android:measureAllChildren="false">

item.setMinimumWidth(10dp);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...