2012-05-17 5 views
0

Я определил мой пользовательский вид с единственным onMeasure() переопределен:Полый взгляд только с фона? Как изменить размер пользовательского представления?

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
    setMeasuredDimension((int)(iwidth * cellWidth), (int)(iheight * cellHeight)); 
} 

используемых переменными являются членами класса, которые устанавливаются с помощью одного сеттера по имени setStep().

изменить его с помощью кнопки:

button.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      float step = hidingPanel.getStep(); 

      step += stepstep; 

      hidingPanel.setStep(step); 
      hidingPanel.invalidate(); 

      setTextButton(); 
     } 

    }); 

Компоновка следующие

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 

<com.inthemoon.incubation.HidingPanel 
    android:id="@+id/hidingPanel" 
    android:background="@android:color/darker_gray" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_marginTop="0dp" 
    android:layout_marginLeft="0dp" 
    /> 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentBottom="true" 
    android:background="@android:color/black" 
    > 
    <Button 
     android:id="@+id/button" 
     android:layout_width="200dp" 
     android:layout_height="100dp" 
     />  
</LinearLayout> 



</RelativeLayout> 

где HidingPanel мой пользовательский вид.

Я ожидал, что мой взгляд будет расти при нажатии кнопки, но это не так. Я обнаружил, что onMeasure() вызывается только несколько раз в начале, когда размеры равны нулю. Как продвигать измерение позже, при нажатии кнопки?

ответ

1

Вам необходимо позвонить requestLayout(); на родительском элементе представления.

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