آموزش Expandable Panel در برنامه نویسی اندروید
سلام دوستان امیدوارم حالتان خوب باشد در این سری از آموزش برنامه نویسی اندروید به آموزش Expandable Panel در برنامه نویسی اندروید می پردازیم از این نوع View ها به منظور نمایش داده خاصی استفاده می شود می توان آن Expandable layout نیز نام گذاری کرد در ادامه می توانید شکل ظاهری آن را مشاهده کنید با ما همراه باشید.
مثل همیشه حجم این کتاب خانه نیز کمتر از 12 کیلوبایت است پس مشکلی در استفاده از آن نخواهید داشت و مثل همیشه کاملا متریال دیزاین.
برای اضافه کردن این کتاب خانه ابتدا وارد فایل Build.gradle از نوع Module شده و در بخش dependencies خط زیر را قرار دهید.
1 2 3 | dependencies { compile 'com.github.florent37:expansionpanel:1.0.3' } |
پروژه را Sync کنید علت خطاهای گریدل را قبلا بررسی کردیم می تونید از لینک زیر استفاده کنید.
علت خطای Gradle چیست ؟
بعد از Sync پروژه باید وارد layout که می خواهید از استفاده کنید شده و کد زیر را قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="vertical" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android"> <com.github.florent37.expansionpanel.ExpansionHeader android:layout_height="wrap_content" android:layout_width="match_parent" app:expansion_headerIndicator="@id/headerIndicator" app:expansion_layout="@id/expansionLayout" app:expansion_toggleOnClick="true"> <RelativeLayout android:background="@android:color/white" android:layout_height="48dp" android:layout_width="match_parent" android:paddingLeft="16dp" android:paddingRight="16dp"> <TextView android:layout_centerVertical="true" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Trip name" android:textColor="#3E3E3E" /> <TextView android:layout_centerVertical="true" android:layout_height="wrap_content" android:layout_marginLeft="120dp" android:layout_width="wrap_content" android:text="Carribean cuise" android:textColor="#AAA" /> <android.support.v7.widget.AppCompatImageView android:adjustViewBounds="true" android:id="@+id/headerIndicator" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:layout_width="wrap_content" app:srcCompat="@drawable/ic_expansion_header_indicator_grey_24dp" /> </RelativeLayout> </com.github.florent37.expansionpanel.ExpansionHeader> <com.github.florent37.expansionpanel.ExpansionLayout android:id="@+id/expansionLayout" app:expansion_expanded="false" android:layout_height="wrap_content" android:layout_width="match_parent"> <LinearLayout android:id="@+id/container" android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="vertical"> <TextView android:background="#EEE" android:gravity="center" android:layout_height="100dp" android:layout_width="match_parent" android:text="content" /> </LinearLayout> </com.github.florent37.expansionpanel.ExpansionLayout> </LinearLayout> |
برای Find کردن و دسترسی به متود های آن می توانید مثل زیر آن را find کنید و به متود های آن دسترسی بگیرید.
1 | ExpansionLayout expansionLayout = (ExpansionLayout)FindViewById(R.id.expansionLayout); |
برای اینکه فقط همزان یکیشون باز بشه خط زیر را اضافه کنید.
1 | expansionLayout.openOnlyOne(true); |
ویژگی زیاد دارد می تونید خودتان چک کنید.
و در مورد بهتر شدن شکل ظاهری می تونید بخش content رو با Card View طراحی کنید تا کمی بهتر به نظر برسد.
این آموزش هم همانند آموزش های قبلی به پایان رسید.
سایتتون عالیه
از اینکه دانسته های خودتون رو با دیگران در اشتراک میزارین واقعا ممنونم
خواهش می کنم.
این کلاس روی همه API ها کار میکنه یا نسخه خاصی نیاز دارند
از Api 15 به بالا کار می کند.
سلام. فوق العاده اید. خیلی عالیه سایتتون. از وقتی با این سایت اشنا شدم تا به یه مشکلی بر می خورم اول میام اینجا.
خواهش میکنم هیچ وقت این سایت رو قطع نکنید.
سلام و درود
شما لطف دارید انشاالله که هیچوقت این منبع از بین نره تا همینطور بزرگتر شود و کمکی به Developer های ایرانی باشد.
ممنون بایت آموزشهای خوبتون.
یه سوال داشتم. میشه داخل کانتنت یه ریسایکر گذاشت؟ که مثلا ده پونزده تا متن رو از اس کیو لایت خوند و نشون داد؟
سلام بله امکان پذیر است.
سلام جناب وقتتون بخیر.
کد باز بودن تنها یک لایه کار نمیکند. و دستور opneonlyone را نمی شناسد.
همچنین در قسمت findview کلمه ی find را با F بزرگ نوشته اید که نمیشناسه و باید با f کوچک باشه.