Mark Schwed
Mark Schwed

Reputation: 155

Android - Set FrameLayout width dynamically

I've got a FrameLayout which I want to grow as time continues.

I've implemented a Runnable-Interface.

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

Why doesn't this work? O_O

Upvotes: 3

Views: 4494

Answers (2)

bsautner
bsautner

Reputation: 4812

I was able to do this by setting the initial size of the frame to 0dp and then just setting the minWidth to whatever I wanted.

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

Upvotes: 0

nmr
nmr

Reputation: 16850

You need to set the layout params back after modifying them.

View#setLayoutParams(ViewGroup.LayoutParams lp)

Upvotes: 3

Related Questions