iammert / Expandablelayout
Expandable LinearLayout
Stars: ✭ 1,173
Programming Languages
java
68154 projects - #9 most used programming language
Labels
Projects that are alternatives of or similar to Expandablelayout
Materialdesigncolor
This project shows the color in material design
Stars: ✭ 55 (-95.31%)
Mutual labels: design
Moviebookingui Android
This is a concept of fetching a user's cinema show details like venue, movie, date & showtime before allowing him to place a cinema F&B order.
Stars: ✭ 62 (-94.71%)
Mutual labels: design
Fole
Fole is a simple library to collapse and expand a TextView.
Stars: ✭ 67 (-94.29%)
Mutual labels: expandable
Fitbutton
The button which can use with icon, text, divider, custom ripple effect, border, corner radius e.t.c.
Stars: ✭ 63 (-94.63%)
Mutual labels: design
Generative Designs
A collection of generative design React components
Stars: ✭ 51 (-95.65%)
Mutual labels: design
Women Made It
Awesome design & development tools, books, podcasts, and blogs made by women.
Stars: ✭ 69 (-94.12%)
Mutual labels: design
Design Pattern Samples App
🎨 Exploring creational,structural and behavioral design patterns using Kotlin
Stars: ✭ 62 (-94.71%)
Mutual labels: design
Flutter ui challenge todo
A showcase flutter todo application.
Stars: ✭ 57 (-95.14%)
Mutual labels: design
Fiftyshadesof
An elegant context-care loading placeholder for Android
Stars: ✭ 1,110 (-5.37%)
Mutual labels: design
Cookiecutter Pyramid Talk Python Starter
An opinionated Cookiecutter template for creating Pyramid web applications starting way further down the development chain. This cookiecutter template will create a new Pyramid web application with email, sqlalchemy, rollbar, and way more integrated.
Stars: ✭ 64 (-94.54%)
Mutual labels: design
Design Document
Architectural specification and design of p2🐼
Stars: ✭ 56 (-95.23%)
Mutual labels: design
React Bootstrap With Material Design
React Bootstrap with Material Design - Powerful and free UI KIT
Stars: ✭ 1,119 (-4.6%)
Mutual labels: design
Touch Bar Preview
💻 Touch Bar Preview is a tiny app to display your designs on the MacBook Pro's Touch Bar.
Stars: ✭ 69 (-94.12%)
Mutual labels: design
Ui Challenges
UI challenges by Semicolon, we accept challenges on twitter on #SemicolonChallenge
Stars: ✭ 69 (-94.12%)
Mutual labels: design
ExpandableLayout
Setup
Dependency
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
compile 'com.github.iammert:ExpandableLayout:1.4.1'
}
Layout
<iammert.com.expandablelib.ExpandableLayout
android:id="@+id/el"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:parentLayout="@layout/layout_parent"
app:childLayout="@layout/layout_child"/>
Set renderer
expandableLayout.setRenderer(new ExpandableLayout.Renderer<FruitCategory, Fruit>() {
@Override
public void renderParent(View view, FruitCategory model, boolean isExpanded, int parentPosition) {
((TextView) view.findViewById(R.id.tvParent)).setText(model.name);
}
@Override
public void renderChild(View view, Fruit model, int parentPosition, int childPosition) {
((TextView) view.findViewById(R.id.tvChild)).setText(model.name);
}
});
Set listeners
expandableLayout.setExpandListener(new ExpandCollapseListener.ExpandListener<FruitCategory>() {
@Override
public void onExpanded(int parentIndex, FruitCategory parent, View view) {
//Layout expanded
}
});
expandableLayout.setCollapseListener(new ExpandCollapseListener.CollapseListener<FruitCategory>() {
@Override
public void onCollapsed(int parentIndex, FruitCategory parent, View view) {
//Layout collapsed
}
});
Add section or children
Section<FruitCategory, Fruit> section = new Section<>();
//defaut is false
section.expanded = true;
FruitCategory fruitCategory = new FruitCategory("Fruits");
Fruit fruit1 = new Fruit("Apple");
Fruit fruit2 = new Fruit("Orange");
section.parent = fruitCategory;
section.children.add(fruit1);
section.children.add(fruit2);
expandableLayout.addSection(section);
expandableLayout.addChild(fruitCategory, new Fruit("Grape"));
Filter parent and children
//make your parent class filterable
class FruitCatefory implements Filterable{}
//make your child class filterable
class FruitCatefory implements Filterable{}
Now, you can search in parents or children. Layout will be updated automatically.
expendableLayout.filterParent("SEARCH PARAM")
//or
expendableLayout.filterChildren("SEARCH PARAM")
License
Copyright 2017 Mert Şimşek.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].