Hirdetés

Új hozzászólás Aktív témák

  • thon73

    tag

    Van valakinek tapasztalata a View onMeasure() metódusában?

    <FrameLayout android:id="@android:id/inputArea"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:visibility="gone">
    </FrameLayout>

    Ebbe a FrameLayout-ba helyezek egy custom View-t, aminek semmilyen Layout paramétert nem adok meg. Ilyenkor - gondolom a Frame Layout miatt - teljes képernyőszélesség:MeasureSpec.EXACTLY és teljes képernyőmagasság:MeasureSpec.AT_MOST értékekeket kapok az onMeasure paramétereiként.

    Hiába írom be a kép létrehozásánál pl. ezt:

    boardView = new BoardView( this );
    boardView.setLayoutParams( new ViewGroup.LayoutParams( 200, 200 ) );

    NEM 200x200-as kérést, hanem az előbbi értékeket kapom. (Akkor is, ha ViewGroup helyett FrameLayout-ot adok meg, hiszen az csak leszármazottja.)

    Ezzel szemben, ha készítek egy res/layout xml-t, és ugyanezt a custom View-t abból (inflate-tel) készítem el, akkor figyelembe veszi a View-hez beírt layout paramétereket.

    Két kérdésem van:
    - Mit rontok el a programkódnál megadott paramétereknél, ami miatt nem veszi azokat figyelembe?
    - Mikor vehetem biztosra, hogy a megkapott mérési értékek a teljes képernyő méretét fogják tartalmazni - már amennyiben semmilyen layout paramétert nem adok meg? (Az oké, hogy AT_MOST, meg EXACTLY jelzőkkel)

    Amúgy a kép arányaihoz akarom passzintani a View-t, ami rendben is működik - ha a második kérdésre "mindig" a válasz. A másik részt meg csak simán nem értem - eredetileg ezzel akartam volna biztosítani a második kérdést...

Új hozzászólás Aktív témák