布局关于确定奇怪的行为

时间:2016-01-26 15:30:52

标签: android

在我的应用程序中,有方形可定制的触觉区域。

用户可以按父母大小的百分比自定义位置(左上角,中间底部......)和大小。

xml视图:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="fr.tactiledialog.TestBoxActivity">

    <fr.tactiledialog.layout.SquareLayout
        android:id="@+id/test_tactile_area"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

自定义广场布局&#39; onMeasue:

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int width = MeasureSpec.getSize(widthMeasureSpec);
    int height = MeasureSpec.getSize(heightMeasureSpec);

    size = (width > height ? height : width) * getPercentageSizeFromPreferences() / 100;

    Log.e("DIALOG", width + " ~ " + height + " = " +  size);

    setMeasuredDimension(size, size); // to make it square
}

问题是这个方法被多次调用(准确地说是四次):

E/DIALOG: 984 ~ 1677 = 541
E/DIALOG: 541 ~ 1581 = 297
E/DIALOG: 984 ~ 1677 = 541
E/DIALOG: 541 ~ 1581 = 297

我没有经验丰富的Android开发人员,所以我无法弄清楚逻辑和解决方案。请帮忙。

感谢。

0 个答案:

没有答案