-
ExpandableListView 샘플안드로이드(스튜디오)/막 써 2018. 3. 17. 19:13반응형
본 샘플은 그룹 아이템 열기, 그룹 아이템 닫기, 추가, 삭제, 정렬 총 5가지의 이미지 파일이 필요 합니다.
이미지 파일은 따로 준비해서 설정하여 사용하시면 됩니다.
ExpandableListView_Sample_Activity.java
package com.abyser.activity;
import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.View;
import android.widget.Button;
import android.widget.ExpandableListView;
import com.abyser.R;
/**
* <pre>
* ExpandableListView 샘플 액티비티.
* </pre>
* Created by abyser on 2017-08-27.
*/
public class ExpandableListView_Sample_Activity extends Activity implements
View.OnClickListener,
ExpandableListView.OnGroupClickListener, ExpandableListView.OnGroupExpandListener, ExpandableListView.OnGroupCollapseListener,
ExpandableListView.OnChildClickListener {
/** 로그 태그 */
private static final String LOG_TAG = "ExpandableListView_Sample";
// 레이아웃
private Button btn_clear_group;
private Button btn_clear_child;
private ExpandableListView elv;
private ExpandableListView_Sample_Adapter mAdapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_expandablelistview);
initValue();
initLayout();
}
/**
* 초기 값 설정.
*/
private void initValue(){
}
/**
* 초기 레이아웃 설정.
*/
private void initLayout(){
btn_clear_group = (Button)findViewById(R.id.expandablelistview_btn_clear_group);
btn_clear_child = (Button)findViewById(R.id.expandablelistview_btn_clear_child);
elv = (ExpandableListView)findViewById(R.id.expandablelistview_elv) ;
mAdapter = new ExpandableListView_Sample_Adapter(this);
elv.setAdapter(mAdapter);
// 터치 이벤트
btn_clear_group.setOnClickListener(this);
btn_clear_child.setOnClickListener(this);
// elv.setOnGroupClickListener(this);
// elv.setOnGroupExpandListener(this);
// elv.setOnGroupCollapseListener(this);
// elv.setOnChildClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.expandablelistview_btn_clear_group:
mAdapter.clearGroup();
break;
case R.id.expandablelistview_btn_clear_child:
for (int i = 0; i < mAdapter.getGroupCount(); i++) {
mAdapter.clearChild(i);
}
break;
}
}
/**
* 그룹 아이템 클릭 이벤트.
* @param parent 클릭 이벤트가 발생한 익스펜더블리스트 뷰
* @param v 클릭한 그룹 아이템 뷰
* @param groupPosition 클릭한 그룹 아이템 포지션
* @param id 클릭한 그룹 아이템 아이디
* @return true : 클릭 되었을 경우, false : 클릭 되지 않았을 경우
*/
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
return false;
}
/**
* 그룹 아이템 열릴시 이벤트.
* @param groupPosition 열리는 그룹 아이템 포지션
*/
@Override
public void onGroupExpand(int groupPosition) {
}
/**
* 그룹 아이템 닫힐시 이벤트.
* @param groupPosition 닫히는 그룹 아이템 포지션
*/
@Override
public void onGroupCollapse(int groupPosition) {
}
/**
* 자식 아이템 클릭 이벤트.
* @param parent 클릭 이벤트가 발생한 익스펜더블리스트 뷰
* @param v 클릭 이벤트가 발생한 자식 아이템 뷰
* @param groupPosition 클릭 이벤트가 발생한 그룹 아이템 포지션
* @param childPosition 클릭 이벤트가 발생한 자식 아이템 포지션
* @param id 클릭 이벤트가 발생한 자식 아이템 아이디
* @return true : 클릭 되었을 경우, false : 클릭 되지 않았을 경우
*/
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
return false;
}
}ExpandableListView_Sample_Adapter.java
package com.abyser.activity;
import android.app.Activity;
import android.content.Context;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Display;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.BaseExpandableListAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.abyser.R;
import java.util.ArrayList;
/**
* <pre>
* ExpandableListView 샘플 어뎁터.
* </pre>
* Created by abyser on 2017-08-27.
*/
public class ExpandableListView_Sample_Adapter extends BaseExpandableListAdapter {
/** 로그 태그 */
private static final String LOG_TAG = "ExpandableListView_Sample_Adapter";
/** 샘플 Group Item 사이즈 */
private static final int SAMPLE_GROUP_SIZE = 5;
/** 샘플 Child Item 사이즈 */
private static final int SAMPLE_CHILD_SIZE = 5;
private Context mContext;
private ArrayList<GroupItem> mArrayGroup;
private ArrayList<ArrayList<ChildItem>> mArrayChild;
private int mGroupItemHeight;
private int mChildItemHeight;
/**
* 생성자.
* @param context
*/
public ExpandableListView_Sample_Adapter(Context context) {
this.mContext = context;
initValue();
initGroupItemSize();
initChildItemSize();
initSampleData();
}
/**
* 초기 값 설정.
*/
private void initValue(){
this.mArrayGroup = new ArrayList<GroupItem>();
this.mArrayChild = new ArrayList<ArrayList<ChildItem>>();
mGroupItemHeight = 0;
mChildItemHeight = 0;
}
/**
* 초기 GroupItem 크기 설정.
*/
private void initGroupItemSize() {
WindowManager window_manager = (WindowManager) mContext.getSystemService(android.content.Context.WINDOW_SERVICE);
Display dis = window_manager.getDefaultDisplay();
DisplayMetrics metrics = new DisplayMetrics();
dis.getMetrics(metrics);
int deviceWidth = metrics.widthPixels;
int deviceHeight = metrics.heightPixels;
mGroupItemHeight = deviceHeight / 15;
}
/**
* 초기 ChildItem 크기 설정.
*/
private void initChildItemSize() {
WindowManager window_manager = (WindowManager) mContext.getSystemService(android.content.Context.WINDOW_SERVICE);
Display dis = window_manager.getDefaultDisplay();
DisplayMetrics metrics = new DisplayMetrics();
dis.getMetrics(metrics);
int deviceWidth = metrics.widthPixels;
int deviceHeight = metrics.heightPixels;
mChildItemHeight = mGroupItemHeight;
}
/**
* 초기 보여질 데이터 설정.
*/
private void initSampleData(){
for (int i = 0; i < SAMPLE_GROUP_SIZE; i++) {
GroupItem gi = new GroupItem();
gi.groupName = ((i == SAMPLE_GROUP_SIZE - 1) ? "Group Add" : "Group " + String.valueOf(i + 1));
gi.groupPosition = i;
mArrayGroup.add(gi);
ArrayList<ChildItem> arrayCi = new ArrayList<ChildItem>();
if(i == SAMPLE_GROUP_SIZE - 1){
ChildItem ci = new ChildItem();
ci.groupPosition = i;
ci.childName = "Child Add";
ci.childPosition = 0;
arrayCi.add(ci);
}else {
for (int j = 0; j < SAMPLE_CHILD_SIZE; j++) {
ChildItem ci = new ChildItem();
ci.groupPosition = i;
ci.childName = ((j == SAMPLE_CHILD_SIZE - 1) ? "Child Add" : "Child " + String.valueOf(j + 1));
ci.childPosition = j;
arrayCi.add(ci);
}
}
mArrayChild.add(arrayCi);
}
}
@Override
public int getGroupCount() {
return mArrayGroup.size();
}
@Override
public GroupItem getGroup(int groupPosition) {
return mArrayGroup.get(groupPosition);
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
/**
* GroupItem 뷰 설정
*/
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
if(groupPosition == (mArrayGroup.size() - 1)) {
convertView = ((Activity) mContext).getLayoutInflater().inflate(R.layout.item_expandablelistview_group_add, null);
RelativeLayout relative_root = (RelativeLayout) convertView.findViewById(R.id.item_expandablelistview_group_relative_root);
relative_root.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, mGroupItemHeight));
Button btn_add = (Button)convertView.findViewById(R.id.item_expandablelistview_group_btn_add);
btn_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addGroup("Group " + String.valueOf(mArrayGroup.size()));
}
});
}else{
convertView = ((Activity) mContext).getLayoutInflater().inflate(R.layout.item_expandablelistview_group, null);
GroupItem gi = mArrayGroup.get(groupPosition);
LinearLayout linear_root = (LinearLayout)convertView.findViewById(R.id.item_expandablelistview_group_linear_root);
ImageView iv_openclose = (ImageView)convertView.findViewById(R.id.item_expandablelistview_group_iv_openclose);
TextView tv_name = (TextView)convertView.findViewById(R.id.item_expandablelistview_group_tv_name);
ImageView iv_delete = (ImageView)convertView.findViewById(R.id.item_expandablelistview_group_iv_delete);
ImageView iv_order = (ImageView)convertView.findViewById(R.id.item_expandablelistview_group_iv_order);
linear_root.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, mGroupItemHeight));
iv_openclose.setImageResource(isExpanded ? R.mipmap.ic_expandablelistview_open : R.mipmap.ic_expandablelistview_close);
tv_name.setText(gi.groupName);
iv_delete.setTag(gi);
iv_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Object obj = v.getTag();
if(obj != null && obj instanceof GroupItem) {
GroupItem gi = (GroupItem) obj;
deleteGroup(gi.groupPosition);
}
}
});
iv_order.setTag(gi);
iv_order.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mContext, "미 구현된 기능입니다.", Toast.LENGTH_SHORT).show();
return;
// GroupItem gi = (GroupItem) v.getTag();
//
// notifyOrder();
}
});
}
return convertView;
}
@Override
public int getChildrenCount(int groupPosition) {
return mArrayChild.get(groupPosition).size();
}
@Override
public ChildItem getChild(int groupPosition, int childPosition) {
return mArrayChild.get(groupPosition).get(childPosition);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
/**
* ChildItem 뷰 설정.
* @param groupPosition
* @param childPosition
* @param isLastChild
* @param convertView
* @param parent
* @return
*/
@Override
public View getChildView(final int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
final ArrayList<ChildItem> array = mArrayChild.get(groupPosition);
if(childPosition == array.size() - 1){
convertView = ((Activity)mContext).getLayoutInflater().inflate(R.layout.item_expandablelistview_child_add, null);
RelativeLayout relative_root = (RelativeLayout) convertView.findViewById(R.id.item_expandablelistview_child_relative_root);
relative_root.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, mChildItemHeight));
Button btn_add = (Button)convertView.findViewById(R.id.item_expandablelistview_child_btn_add);
btn_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addChild(groupPosition, "Child " + String.valueOf(array.size()));
}
});
}else {
ChildItem ci = array.get(childPosition);
convertView = ((Activity) mContext).getLayoutInflater().inflate(R.layout.item_expandablelistview_child, null);
LinearLayout linear_root = (LinearLayout) convertView.findViewById(R.id.item_expandablelistview_child_linear_root);
TextView tv_name = (TextView) convertView.findViewById(R.id.item_expandablelistview_child_tv_name);
ImageView iv_delete = (ImageView) convertView.findViewById(R.id.item_expandablelistview_child_iv_delete);
ImageView iv_order = (ImageView) convertView.findViewById(R.id.item_expandablelistview_child_iv_order);
linear_root.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, mChildItemHeight));
tv_name.setText(ci.childName);
iv_delete.setTag(ci);
iv_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Object obj = v.getTag();
if(obj != null && obj instanceof ChildItem) {
ChildItem ci = (ChildItem) v.getTag();
deleteChild(ci.groupPosition, ci.childPosition);
}
}
});
iv_order.setTag(ci);
iv_order.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mContext, "미 구현된 기능입니다.", Toast.LENGTH_SHORT).show();
return;
// ChildItem ci = (ChildItem) v.getTag();
//
// notifyOrder();
}
});
}
return convertView;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
/**
* GroupItem 추가.
* @param groupName 추가 할 GroupItem 명
*/
public void addGroup(String groupName){
if(groupName == null || groupName.length() <= 0){
Log.e(LOG_TAG, "Can not add group item. Cause group item name is null.");
return;
}
GroupItem lastGi = mArrayGroup.get(mArrayGroup.size() - 1);
lastGi.groupName = groupName;
mArrayGroup.set(mArrayGroup.size() - 1, lastGi);
GroupItem gi = new GroupItem();
gi.groupName = "Group Add";
gi.groupPosition = mArrayGroup.size();
mArrayGroup.add(gi);
ArrayList<ChildItem> array = new ArrayList<ChildItem>();
ChildItem ci = new ChildItem();
ci.groupPosition = mArrayChild.size();
ci.childName = "Child Add";
ci.childPosition = 0;
array.add(ci);
mArrayChild.add(array);
notifyDataSetChanged();
}
/**
* GroupItem 삭제.
* @param groupPosition 삭제 할 GroupItem 포지션
*/
public void deleteGroup(int groupPosition){
if(groupPosition < 0 || groupPosition > (mArrayGroup.size() - 1)){
Log.e(LOG_TAG, "Can not delete group item. Cause delete group item position is not valid.");
return;
}
if(mArrayGroup.size() == 1){
return;
}
if(groupPosition == mArrayGroup.size() - 1){
return;
}
mArrayGroup.remove(groupPosition);
mArrayChild.remove(groupPosition);
if(mArrayGroup.size() > 1) {
for (int i = 0; i < mArrayGroup.size(); i++) {
mArrayGroup.get(i).groupPosition = i;
ArrayList<ChildItem> arrayCi = mArrayChild.get(i);
for (int j = 0; j < arrayCi.size(); j++) {
arrayCi.get(j).groupPosition = i;
}
}
}else if(mArrayGroup.size() == 1){
GroupItem gi = mArrayGroup.get(0);
gi.groupPosition = 0;
ArrayList<ChildItem> arrayCi = mArrayChild.get(0);
for (int j = 0; j < arrayCi.size(); j++) {
arrayCi.get(j).groupPosition = 0;
}
}else if(mArrayGroup.size() <= 0){
GroupItem gi = mArrayGroup.get(mArrayGroup.size() - 1);
gi.groupName = "Group Add";
gi.groupPosition = 0;
mArrayGroup.add(gi);
ArrayList<ChildItem> array = new ArrayList<ChildItem>();
ChildItem ci = new ChildItem();
ci.groupPosition = 0;
ci.childName = "Child Add";
ci.childPosition = 0;
array.add(ci);
mArrayChild.add(array);
}
notifyDataSetChanged();
}
/**
* GroupItem 전체 삭제.
*/
public void clearGroup(){
mArrayGroup = new ArrayList<GroupItem>();
mArrayChild = new ArrayList<ArrayList<ChildItem>>();
GroupItem gi = new GroupItem();
gi.groupName = "Group Add";
gi.groupPosition = 0;
mArrayGroup.add(gi);
ArrayList<ChildItem> array = new ArrayList<ChildItem>();
ChildItem ci = new ChildItem();
ci.groupPosition = 0;
ci.childName = "Child Add";
ci.childPosition = 0;
array.add(ci);
mArrayChild.add(array);
notifyDataSetChanged();
}
/**
* ChildItem 추가.
* @param groupPosition 추가 할 GroupItem 포지션
* @param childName 추가 할 ChildItem 명
*/
public void addChild(int groupPosition, String childName){
if(groupPosition < 0 || groupPosition > (mArrayGroup.size() - 1)){
Log.e(LOG_TAG, "Can not add child item. Cause group item position is not valid.");
return;
}
if(childName == null || childName.length() <= 0){
Log.e(LOG_TAG, "Can not add child item. Cause child item name is null.");
return;
}
ArrayList<ChildItem> arrayCi = mArrayChild.get(groupPosition);
ChildItem lastCi = arrayCi.get(arrayCi.size() - 1);
lastCi.childName = childName;
arrayCi.set(arrayCi.size() - 1, lastCi);
ChildItem ci = new ChildItem();
ci.groupPosition = groupPosition;
ci.childName = "Child Add";
ci.childPosition = arrayCi.size();
arrayCi.add(ci);
mArrayChild.set(groupPosition, arrayCi);
notifyDataSetChanged();
}
/**
* ChildItem 삭제.
* @param groupPosition 삭제 할 GroupItem 포지션
* @param childPosition 삭제 할 ChildItem 포지션
*/
public void deleteChild(int groupPosition, int childPosition){
if(groupPosition < 0 || groupPosition > (mArrayGroup.size() - 1)){
Log.e(LOG_TAG, "Can not delete child item. Cause group item position is not valid.");
return;
}
ArrayList<ChildItem> arrayCi = mArrayChild.get(groupPosition);
if(childPosition < 0 || childPosition > (arrayCi.size() - 1)){
Log.e(LOG_TAG, "Can not delete child item. Cause child item position is not valid.");
return;
}
if(arrayCi.size() == 1){
return;
}
if(childPosition == arrayCi.size() - 1){
return;
}
arrayCi.remove(childPosition);
if(arrayCi.size() > 1){
for (int i = 0; i < arrayCi.size(); i++) {
arrayCi.get(i).childPosition = i;
}
}else if(arrayCi.size() == 1){
arrayCi.get(0).childPosition = 0;
}else if(arrayCi.size() <= 0){
ChildItem ci = new ChildItem();
ci.groupPosition = groupPosition;
ci.childName = "Child Add";
ci.childPosition = 0;
arrayCi.add(ci);
}
mArrayChild.set(groupPosition, arrayCi);
notifyDataSetChanged();
}
/**
* ChildItem 전체 삭제.
* @param groupPosition 전체 삭제 할 GroupItem 포지션
*/
public void clearChild(int groupPosition){
if(groupPosition < 0 || groupPosition > (mArrayGroup.size() - 1)){
Log.e(LOG_TAG, "Can not clear child item. Cause group item position is not valid.");
return;
}
ArrayList<ChildItem> arrayCi = new ArrayList<ChildItem>();
ChildItem ci = new ChildItem();
ci.groupPosition = groupPosition;
ci.childName = "Child Add";
ci.childPosition = 0;
arrayCi.add(ci);
mArrayChild.set(groupPosition, arrayCi);
notifyDataSetChanged();
}
/**
* 정렬.
* 미 구현.
*/
public void notifyOrder(){
}
/**
* GroupItem 데이터를 담을 개발자 정의 클래스.
*/
public class GroupItem{
public String groupName;
public int groupPosition;
}
/**
* ChildItem 데이터를 담을 개발자 정의 클래스.
*/
public class ChildItem{
public int groupPosition;
public String childName;
public int childPosition;
}
}activity_expandablelistview.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/expandablelistview_btn_clear_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Clear group item" />
<Button
android:id="@+id/expandablelistview_btn_clear_child"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Clear child item" />
</LinearLayout>
<ExpandableListView
android:id="@+id/expandablelistview_elv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:groupIndicator="@null" />
</LinearLayout>item_expandablelistview_group.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/item_expandablelistview_group_linear_root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/holo_blue_dark"
android:orientation="horizontal">
<ImageView
android:id="@+id/item_expandablelistview_group_iv_openclose"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:padding="10dp"
android:src="@mipmap/ic_expandablelistview_close" />
<TextView
android:id="@+id/item_expandablelistview_group_tv_name"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:layout_weight="7"
android:gravity="center_vertical" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:orientation="horizontal">
<ImageView
android:id="@+id/item_expandablelistview_group_iv_delete"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:padding="10dp"
android:src="@mipmap/ic_expandablelistview_delete" />
<ImageView
android:id="@+id/item_expandablelistview_group_iv_order"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:padding="10dp"
android:src="@mipmap/ic_expandablelistview_order" />
</LinearLayout>
</LinearLayout>item_expandablelistview_group_add.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/item_expandablelistview_group_relative_root"
android:gravity="center">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/ic_expandablelistview_add"
android:padding="10dp"/>
<Button
android:id="@+id/item_expandablelistview_group_btn_add"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"/>
</RelativeLayout>item_expandablelistview_child.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/item_expandablelistview_child_linear_root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/darker_gray"
android:orientation="horizontal">
<Space
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1.5" />
<TextView
android:id="@+id/item_expandablelistview_child_tv_name"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:layout_weight="6.5"
android:gravity="center_vertical" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:orientation="horizontal">
<ImageView
android:id="@+id/item_expandablelistview_child_iv_delete"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:padding="10dp"
android:src="@mipmap/ic_expandablelistview_delete" />
<ImageView
android:id="@+id/item_expandablelistview_child_iv_order"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:src="@mipmap/ic_expandablelistview_order"
android:padding="10dp" />
</LinearLayout>
</LinearLayout>item_expandablelistview_child_add.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/item_expandablelistview_child_relative_root"
android:gravity="center">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/ic_expandablelistview_add"
android:padding="10dp"/>
<Button
android:id="@+id/item_expandablelistview_child_btn_add"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"/>
</RelativeLayout>반응형'안드로이드(스튜디오) > 막 써' 카테고리의 다른 글
디바이스 전화번호 가져오기 메소드 (1) 2018.04.05 네트워크 연결 여부 확인 메소드 (0) 2018.04.04 일정 기간 범위 선택하여 작업하는 샘플 (2) 2018.02.12 단순 텍스트 로그용 액티비티 (0) 2017.11.27 태스크에 있는 액티비티 띄우기 (0) 2017.11.27