편집 기록

편집 기록
  • 프로필 허대영(소프트웨어융합대학)님의 편집
    날짜2016.03.19

    ListView의 셀 높이 조절이 안됩니다.


    ListView의 셀 높이 조절이 안됩니다.

    android:layout_height="70dp" 를 줘서 셀의 높이 70dp 로 나와야하는데

    너무 크게 나옵니다. minheight도 해봤고 줄여도 봤고 늘려도 봤는데 변화가 없습니다.

    • SwipeMenuListView 오픈 소스를 사용했습니다.
    <com.baoyz.swipemenulistview.SwipeMenuListView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/inspectorListView"
            android:layout_gravity="center_horizontal" />
    
    • activity_ inspector_ list_ item.xml (리스트뷰 셀 구성)
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:background="@drawable/bg_yellow">
    
        <ImageView
            android:id="@+id/thumbnail"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_gravity="left|center_vertical"
            android:layout_marginLeft="10dp" />
    
        <TextView
            android:id="@+id/itemInfo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="left|center_vertical"
            android:layout_marginLeft="30dp"
            android:layout_weight="1"
            android:textSize="15dp"
            android:textColor="@color/white"/>
    
    </LinearLayout>
    
    • adapter 부분 입니다
    private class InspectorAdapter extends ArrayAdapter {
            LayoutInflater mLayoutInflater;
    
            public InspectorAdapter(Context context, int resource, ArrayList<InspectorItem> list) {
                super(context, resource, list);
                mLayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            }
    
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                View view;
                ViewHolder viewHolder;
                if (convertView == null) {
                    view = mLayoutInflater.inflate(R.layout.activity_inspector_list_item, parent, false);
                    viewHolder = new ViewHolder();
                    viewHolder.thumbnail = (ImageView) view.findViewById(R.id.thumbnail);
                    viewHolder.itemInfo = (TextView) view.findViewById(R.id.itemInfo);
                    view.setTag(viewHolder);
                } else {
                    view = convertView;
                    viewHolder = (ViewHolder) view.getTag();
                }
                InspectorItem inspectorItem = (InspectorItem) getItem(position);
                viewHolder.thumbnail.setImageResource(inspectorItem.getThumbNail());
                viewHolder.itemInfo.setText(inspectorItem.getItemInfo());
                return view;
            }
        }
    
        private class ViewHolder {
            private ImageView thumbnail;
            private TextView itemInfo;
        }
    
  • 프로필 김선우님의 편집
    날짜2016.03.19

    ListView의 셀 높이 조절이 안됩니다.


    ListView의 셀 높이 조절이 안됩니다.

    android:layout_height="70dp" 를 줘서 셀의 높이 70dp 로 나와야하는데

    너무 크게 나옵니다. minheight도 해봤고 줄여도 봤고 늘려도 봤는데 변화가 없습니다.

    • SwipeMenuListView 오픈 소스를 사용했습니다.
    <com.baoyz.swipemenulistview.SwipeMenuListView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/inspectorListView"
            android:layout_gravity="center_horizontal" />
    
    • activity_ inspector_ list_ item.xml (리스트뷰 셀 구성)

      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="horizontal"
      android:layout_width="match_parent"
      android:layout_height="70dp"
      android:background="@drawable/bg_yellow">
      
      <ImageView
          android:id="@+id/thumbnail"
          android:layout_width="70dp"
          android:layout_height="70dp"
          android:layout_gravity="left|center_vertical"
          android:layout_marginLeft="10dp" />
      
      <TextView
          android:id="@+id/itemInfo"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_gravity="left|center_vertical"
          android:layout_marginLeft="30dp"
          android:layout_weight="1"
          android:textSize="15dp"
          android:textColor="@color/white"/>
      

    
    - adapter 부분 입니다
    
    

    private class InspectorAdapter extends ArrayAdapter { LayoutInflater mLayoutInflater;

        public InspectorAdapter(Context context, int resource, ArrayList<InspectorItem> list) {
            super(context, resource, list);
            mLayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View view;
            ViewHolder viewHolder;
            if (convertView == null) {
                view = mLayoutInflater.inflate(R.layout.activity_inspector_list_item, parent, false);
                viewHolder = new ViewHolder();
                viewHolder.thumbnail = (ImageView) view.findViewById(R.id.thumbnail);
                viewHolder.itemInfo = (TextView) view.findViewById(R.id.itemInfo);
                view.setTag(viewHolder);
            } else {
                view = convertView;
                viewHolder = (ViewHolder) view.getTag();
            }
            InspectorItem inspectorItem = (InspectorItem) getItem(position);
            viewHolder.thumbnail.setImageResource(inspectorItem.getThumbNail());
            viewHolder.itemInfo.setText(inspectorItem.getItemInfo());
            return view;
        }
    }
    
    private class ViewHolder {
        private ImageView thumbnail;
        private TextView itemInfo;
    }