Android App Dev - LayoutInflater.

niyomax

Well-known member
  • Sep 24, 2014
    4,595
    7,483
    113
    .......
    .......
    .......
    .......

    Android app dev කරන අයගෙන් පොඩි හෙල්ප් එකක් ඕන. Android dev වල LayoutInflater එක පොඩ්ඩක් උදාහරණයක් එක්ක පැහැදිලි කරල දෙනවද ? ලොකු පිනක් මචංලා. කොච්චර කියව්වත් , බැලුවත් විඩියෝ එකක් වැදුනේ නෑ ඒක ගැන හරියට :(

    තව පොඩි ප්‍රශ්නයක් තියෙයි :)

    දැන් අපි අපි හදන්න යන ඇප් එකේ UI එකට අනුව මොන layout එකක් ද එන්නේ කියල තිරනේ කරනවනේ. ප්‍රැක්ටිකලි වැඩියෙන්ම යූස් වෙන්නේ RelativeLayout එකද ? මොකද ඕනේ ම screen එකකට adjust වෙනව ? ඒ ගැනත් දැනගන්න කැමතියි.

    anith aya BUMP paarak danna machanla

     
    • Like
    Reactions: ÆSP

    DooA

    Well-known member
  • Jun 22, 2011
    5,202
    773
    113
    ආගිය අතක් නැත
    Practically කොහොමද දන්නේ නෑ.
    මම නම් use කරන්නේ linear layout.

    දන්නා විදියට LayoutInflater කරන්නේ XML UI කෑලි java object වලට convert කරන එක.

    හරියටම දන්නා කෙනෙක් කියලා දෙයි
     

    niyomax

    Well-known member
  • Sep 24, 2014
    4,595
    7,483
    113
    Practically කොහොමද දන්නේ නෑ.
    මම නම් use කරන්නේ linear layout.

    දන්නා විදියට LayoutInflater කරන්නේ XML UI කෑලි java object වලට convert කරන එක.

    හරියටම දන්නා කෙනෙක් කියලා දෙයි

    Thanx kolla.. ow machan ohoma idea ekak aawa..but hariyata wedune ne ban..thanx macho
     

    DooA

    Well-known member
  • Jun 22, 2011
    5,202
    773
    113
    ආගිය අතක් නැත
    Thanx kolla.. ow machan ohoma idea ekak aawa..but hariyata wedune ne ban..thanx macho

    Head first Android development 2015 එක කියවපන් මචං.
    මාත් මේ දවස් වල වෙලාව තියෙන විදියට කියවනවා. එකේ ඕවා ඔක්කොම විස්තර කරලා තියෙනවා.
    තාම බාගයයි ඉවර ඉතුරු ටික ඉවර උනාම ඕකට විස්තර සහිතව උත්තරයක් දෙන්න පුළුවන් වෙයි කියලා හිතනවා
     

    asiridol

    Active member
  • Dec 29, 2006
    756
    234
    43
    Still on earth
    layoutinflater eken karanne view ekakata xml file eke thiyena layout eka load karanawa wage scene ekak.. layout design karaddi layout managers okkoma kalawame use karanna.. relative, frame, table, linear oya okkoma samahara welawata one wenawa..
     

    niyomax

    Well-known member
  • Sep 24, 2014
    4,595
    7,483
    113
    layoutinflater eken karanne view ekakata xml file eke thiyena layout eka load karanawa wage scene ekak.. layout design karaddi layout managers okkoma kalawame use karanna.. relative, frame, table, linear oya okkoma samahara welawata one wenawa..

    tikak pehedili karala denna puluwanda machoo..thanx wewa
     

    niyomax

    Well-known member
  • Sep 24, 2014
    4,595
    7,483
    113
    Head first Android development 2015 එක කියවපන් මචං.
    මාත් මේ දවස් වල වෙලාව තියෙන විදියට කියවනවා. එකේ ඕවා ඔක්කොම විස්තර කරලා තියෙනවා.
    තාම බාගයයි ඉවර ඉතුරු ටික ඉවර උනාම ඕකට විස්තර සහිතව උත්තරයක් දෙන්න පුළුවන් වෙයි කියලා හිතනවා

    man vdos tikak balamin inne..head first eka bewa machan...print karagena balanna puluwannan patta :p uba pc eke daagena kiyawanawada :)
     

    asiridol

    Active member
  • Dec 29, 2006
    756
    234
    43
    Still on earth
    tikak pehedili karala denna puluwanda machoo..thanx wewa

    koi kallada explain karanna one? normally activity ekakata layout ekak load karanne activity eke setcontentview method eken.. fragment ekakata onCreateView method eka override karala..

    eth onema view ekakata layout ekak inflate karanna puluwan..
    ex/ reusable listview cell ekakata, dialogfragment ekaka content view ekata etc.

    layoutmanagers godak use karanna wenawa samahara welawata..
    ex/
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/linearLayout1"
        android:gravity="center"
        android:textAlignment="center"
        android:background="#FFFFFF"
        android:padding="10dp">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textAlignment="viewEnd"
            android:gravity="top">
            <TextView
                android:text="Welcome"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                style="@style/textBigStyle"
                android:id="@+id/textHeader"
                android:paddingBottom="25dp"
                android:paddingTop="15dp" />
            <TextView
                android:text="Welcome"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/textMessage"
                android:paddingLeft="40dp"
                android:paddingRight="40dp"
                android:paddingBottom="50dp"
                android:lines="2"
                android:gravity="center_horizontal"
                style="@style/textExtraSmallStyle"
                android:layout_marginRight="0.0dp" />
            <TableLayout xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:textAlignment="center">
                <TableRow
                    android:paddingTop="15dp">
                    <RelativeLayout
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center"
                        android:layout_centerHorizontal="true">
                        <View
                            android:layout_width="60dp"
                            android:layout_height="60dp"
                            android:id="@+id/PinView1Empty"
                            android:background="@drawable/CircleEmpty"
                            android:textAlignment="center"
                            android:layout_gravity="center"
                            android:layout_centerInParent="true" />
                        <View
                            android:layout_width="50dp"
                            android:layout_height="50dp"
                            android:id="@+id/PinView1Full"
                            android:background="@drawable/CircleFull"
                            android:textAlignment="center"
                            android:layout_gravity="center"
                            android:layout_centerInParent="true"
                            tools:visibility="gone" />
                    </RelativeLayout>
                    <RelativeLayout
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center"
                        android:layout_centerHorizontal="true">
                        <View
                            android:layout_width="60dp"
                            android:layout_height="60dp"
                            android:id="@+id/PinView2Empty"
                            android:background="@drawable/CircleEmpty"
                            android:textAlignment="center"
                            android:layout_gravity="center"
                            android:layout_centerInParent="true" />
                        <View
                            android:layout_width="50dp"
                            android:layout_height="50dp"
                            android:id="@+id/PinView2Full"
                            android:background="@drawable/CircleFull"
                            android:textAlignment="center"
                            android:layout_gravity="center"
                            android:layout_centerInParent="true"
                            tools:visibility="gone" />
                    </RelativeLayout>
                    <RelativeLayout
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center"
                        android:layout_centerHorizontal="true">
                        <View
                            android:layout_width="60dp"
                            android:layout_height="60dp"
                            android:id="@+id/PinView3Empty"
                            android:background="@drawable/CircleEmpty"
                            android:textAlignment="center"
                            android:layout_gravity="center"
                            android:layout_centerInParent="true" />
                        <View
                            android:layout_width="50dp"
                            android:layout_height="50dp"
                            android:id="@+id/PinView3Full"
                            android:background="@drawable/CircleFull"
                            android:textAlignment="center"
                            android:layout_gravity="center"
                            android:layout_centerInParent="true"
                            tools:visibility="gone" />
                    </RelativeLayout>
                    <RelativeLayout
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center"
                        android:layout_centerHorizontal="true">
                        <View
                            android:layout_width="60dp"
                            android:layout_height="60dp"
                            android:id="@+id/PinView4Empty"
                            android:background="@drawable/CircleEmpty"
                            android:textAlignment="center"
                            android:layout_gravity="center"
                            android:layout_centerInParent="true" />
                        <View
                            android:layout_width="50dp"
                            android:layout_height="50dp"
                            android:id="@+id/PinView4Full"
                            android:background="@drawable/CircleFull"
                            android:textAlignment="center"
                            android:layout_gravity="center"
                            android:layout_centerInParent="true"
                            tools:visibility="gone" />
                    </RelativeLayout>
                </TableRow>
            </TableLayout>
            <LinearLayout
                android:layout_gravity="bottom"
                android:textAlignment="textEnd"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1">
                <GridLayout
                    android:columnCount="3"
                    android:rowCount="4"
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent"
                    android:layout_gravity="bottom"
                    android:id="@+id/buttonGrid">
                    <Button
                        android:id="@+id/button1"
                        android:text="1"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button2"
                        android:text="2"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button3"
                        android:text="3"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button4"
                        android:text="4"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button5"
                        android:text="5"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button6"
                        android:text="6"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button7"
                        android:text="7"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button8"
                        android:text="8"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button9"
                        android:text="9"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/buttonDel"
                        android:text="DEL"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button0"
                        android:text="0"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/buttonOk"
                        android:text="OK"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                </GridLayout>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
     
    • Like
    Reactions: niyomax

    niyomax

    Well-known member
  • Sep 24, 2014
    4,595
    7,483
    113
    koi kallada explain karanna one? normally activity ekakata layout ekak load karanne activity eke setcontentview method eken.. fragment ekakata onCreateView method eka override karala..

    eth onema view ekakata layout ekak inflate karanna puluwan..
    ex/ reusable listview cell ekakata, dialogfragment ekaka content view ekata etc.

    layoutmanagers godak use karanna wenawa samahara welawata..
    ex/
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/linearLayout1"
        android:gravity="center"
        android:textAlignment="center"
        android:background="#FFFFFF"
        android:padding="10dp">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textAlignment="viewEnd"
            android:gravity="top">
            <TextView
                android:text="Welcome"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                style="@style/textBigStyle"
                android:id="@+id/textHeader"
                android:paddingBottom="25dp"
                android:paddingTop="15dp" />
            <TextView
                android:text="Welcome"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/textMessage"
                android:paddingLeft="40dp"
                android:paddingRight="40dp"
                android:paddingBottom="50dp"
                android:lines="2"
                android:gravity="center_horizontal"
                style="@style/textExtraSmallStyle"
                android:layout_marginRight="0.0dp" />
            <TableLayout xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:textAlignment="center">
                <TableRow
                    android:paddingTop="15dp">
                    <RelativeLayout
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center"
                        android:layout_centerHorizontal="true">
                        <View
                            android:layout_width="60dp"
                            android:layout_height="60dp"
                            android:id="@+id/PinView1Empty"
                            android:background="@drawable/CircleEmpty"
                            android:textAlignment="center"
                            android:layout_gravity="center"
                            android:layout_centerInParent="true" />
                        <View
                            android:layout_width="50dp"
                            android:layout_height="50dp"
                            android:id="@+id/PinView1Full"
                            android:background="@drawable/CircleFull"
                            android:textAlignment="center"
                            android:layout_gravity="center"
                            android:layout_centerInParent="true"
                            tools:visibility="gone" />
                    </RelativeLayout>
                    <RelativeLayout
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center"
                        android:layout_centerHorizontal="true">
                        <View
                            android:layout_width="60dp"
                            android:layout_height="60dp"
                            android:id="@+id/PinView2Empty"
                            android:background="@drawable/CircleEmpty"
                            android:textAlignment="center"
                            android:layout_gravity="center"
                            android:layout_centerInParent="true" />
                        <View
                            android:layout_width="50dp"
                            android:layout_height="50dp"
                            android:id="@+id/PinView2Full"
                            android:background="@drawable/CircleFull"
                            android:textAlignment="center"
                            android:layout_gravity="center"
                            android:layout_centerInParent="true"
                            tools:visibility="gone" />
                    </RelativeLayout>
                    <RelativeLayout
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center"
                        android:layout_centerHorizontal="true">
                        <View
                            android:layout_width="60dp"
                            android:layout_height="60dp"
                            android:id="@+id/PinView3Empty"
                            android:background="@drawable/CircleEmpty"
                            android:textAlignment="center"
                            android:layout_gravity="center"
                            android:layout_centerInParent="true" />
                        <View
                            android:layout_width="50dp"
                            android:layout_height="50dp"
                            android:id="@+id/PinView3Full"
                            android:background="@drawable/CircleFull"
                            android:textAlignment="center"
                            android:layout_gravity="center"
                            android:layout_centerInParent="true"
                            tools:visibility="gone" />
                    </RelativeLayout>
                    <RelativeLayout
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:layout_gravity="center"
                        android:layout_centerHorizontal="true">
                        <View
                            android:layout_width="60dp"
                            android:layout_height="60dp"
                            android:id="@+id/PinView4Empty"
                            android:background="@drawable/CircleEmpty"
                            android:textAlignment="center"
                            android:layout_gravity="center"
                            android:layout_centerInParent="true" />
                        <View
                            android:layout_width="50dp"
                            android:layout_height="50dp"
                            android:id="@+id/PinView4Full"
                            android:background="@drawable/CircleFull"
                            android:textAlignment="center"
                            android:layout_gravity="center"
                            android:layout_centerInParent="true"
                            tools:visibility="gone" />
                    </RelativeLayout>
                </TableRow>
            </TableLayout>
            <LinearLayout
                android:layout_gravity="bottom"
                android:textAlignment="textEnd"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1">
                <GridLayout
                    android:columnCount="3"
                    android:rowCount="4"
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent"
                    android:layout_gravity="bottom"
                    android:id="@+id/buttonGrid">
                    <Button
                        android:id="@+id/button1"
                        android:text="1"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button2"
                        android:text="2"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button3"
                        android:text="3"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button4"
                        android:text="4"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button5"
                        android:text="5"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button6"
                        android:text="6"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button7"
                        android:text="7"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button8"
                        android:text="8"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button9"
                        android:text="9"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/buttonDel"
                        android:text="DEL"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/button0"
                        android:text="0"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                    <Button
                        android:id="@+id/buttonOk"
                        android:text="OK"
                        android:layout_width="wrap_content"
                        android:layout_height="80dp"
                        style="@style/NumPadButtonStyle" />
                </GridLayout>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

    Layout Inflater eka ei use wenne kiyalai denaganna one..xml eka objects walata convert kirimakne ? pehedili kirimak thama beluwe macho
     

    asiridol

    Active member
  • Dec 29, 2006
    756
    234
    43
    Still on earth
    Layout Inflater eka ei use wenne kiyalai denaganna one..xml eka objects walata convert kirimakne ? pehedili kirimak thama beluwe macho

    ehema traditional java walin hithanna epa machan.. MVC pattern ekata hithapan.. Model eka data side eka. View eka thamai layout xml files. Controller eka activity eka hari mokak hari e view eka control karana eka.. umbata view component ekakata reference one unama resource id eken ganna one.