Set size of a ToggleButton dynamicly
<p>first of all sorry for my bad english :)
I'm new on programming for Android...
I'm trying to setup a view on runtime. I've created my own View class ( derived from AbsoluteView ) successfully, but if i try to resize the content of the view, nothing happens :(</p>

<p>Here is the full code i have wrote :</p>

<pre><code>package com.CaliskanDevelopment.LottoGenerator;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.AbsoluteLayout;
import android.widget.ToggleButton;

@SuppressWarnings("deprecation")
public class CSelectNumbersLayout extends AbsoluteLayout 
{
private ToggleButton    m_clButton;

public CSelectNumbersLayout( Context    clContext )
{
    super( clContext );
    CreateButtons();
}

public CSelectNumbersLayout( Context        clContext,
                             AttributeSet   clAttributeSet )
{
    super( clContext, clAttributeSet );
    CreateButtons();
}

public CSelectNumbersLayout( Context        clContext,
                             AttributeSet   clAttributeSet,
                             int            i32DefStyle )
{
    super( clContext, clAttributeSet, i32DefStyle );
    CreateButtons();
}

private void CreateButtons()
{
    LayoutParams    clLayoutParams = (LayoutParams) generateDefaultLayoutParams();
    int             i32ButtonWidth = 10;
    int             i32ButtonHeight = 10;
    int             i32PosX = 0;
    int             i32PosY = 0;

    clLayoutParams.x = i32PosX;
    clLayoutParams.y = i32PosY;
    clLayoutParams.width = i32ButtonWidth;
    clLayoutParams.height = i32ButtonHeight;

    m_clButton = new ToggleButton( getContext() );
    m_clButton.setText( "setText" );
    m_clButton.setTextOn( "setTextOn" );
    m_clButton.setTextOff( "setTextOff" );
    m_clButton.setLayoutParams( clLayoutParams );

    this.addView( m_clButton );
}

protected void onSizeChanged( int   i32Width,
                              int   i32Height,
                              int   i32OldWidth,
                              int   i32OldHeight )
{
    int i;
    int i32ButtonWidth = ( i32Width / 7 );
    int i32ButtonHeight = ( i32Height / 7 );
    int i32PosX;
    int i32PosY;

    if ( i32ButtonWidth &gt; i32ButtonHeight )
        i32ButtonWidth = i32ButtonHeight;
    else if ( i32ButtonHeight &gt; i32ButtonWidth )
        i32ButtonHeight = i32ButtonWidth;

    i32PosX = ( i32Width / 2 ) - ( ( i32ButtonWidth * 7 ) / 2 );
    i32PosY = ( i32Height / 2 ) - ( ( i32ButtonHeight * 7 ) / 2 );

    LayoutParams    clLayoutParams = (LayoutParams) m_clButton.getLayoutParams();

    clLayoutParams.x = i32PosX;
    clLayoutParams.y = i32PosY;
    clLayoutParams.width = i32ButtonWidth;
    clLayoutParams.height = i32ButtonHeight;

    m_clButton.setLayoutParams( clLayoutParams );
    m_clButton.invalidate();

    this.invalidate();
}
}
</code></pre>

<p>I'm trying to resize the created buttons in function onSizeChanged, because i have readed that this is the first time where i know how big is my view. Calling things like</p>

<pre><code>m_clButton.invalidate();
m_clButton.postInvalidate();
this.invalidate();
</code></pre>

<p>does not have the desired result.
The View is inside a Tab. If i click on the tab first time to show this Layout the Buttons are 10 x 10 ( as i created in the constructor ), i have debugged the Code, it runs over onSizeChanged but the buttons are not resized.
If i show another view and click at this tab again the buttons are resized.</p>

<p>I think the problem is to refresh the view in function onSizeChanged(), but how to do this ???</p>

<p>Thanks in advance...</p>

<p>Hasan Caliskan</p>
