Я определил мой пользовательский вид с единственным 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() вызывается только несколько раз в начале, когда размеры равны нулю. Как продвигать измерение позже, при нажатии кнопки?