게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[질문/안드로이드]리스트뷰 터치 영역 문제인데요 ㅜㅜ(밑에꺼 이상해요)
게시물ID : programmer_8247짧은주소 복사하기
작성자 : 나데시코♥
추천 : 0
조회수 : 3033회
댓글수 : 4개
등록시간 : 2015/02/18 16:53:23
옵션
  • 본인삭제금지
예전에 만들었던 유투브 어플..... 간간히 유지보수중입니당.

Screenshot_2015-02-18-16-29-53.png
이게 바로 오늘 문제가 되는 부분입니다.
문제는 위에 그림에서 볼 수 있듯이, 터치 영역이 좁아요....
저기 "외톨이" 오른쪽 부분을 터치하면 터치 이벤트가 안생겨요 ㅜㅜ

일단 문제를 간소화 시켜봤어요.
전체 코드를 올리자니 너무 많고 복잡해서요 ㄷㄷ
Screenshot_2015-02-18-16-24-03.png          Screenshot_2015-02-18-16-23-35.png
위에 두 녀석의 차이점이 있다면 "터치 영역"이에요.
왼쪽껀 텍스트가 적혀있지 않은 빈 공간을 터치하더라도 터치이벤트가 발생하고
오른쪽껀 텍스트가 젹혀있는 공간만이 터치이벤트를 발생시켜요.

코드를 올려보겠습니다.
먼저 activity_main.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="wrap_content"
    android:orientation="vertical" >
    
    <ListView
        android:id="@+id/list_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    
</LinearLayout>

그리고 list_item.xml 파일입니당.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:orientation="horizontal" >
    
    <TextView 
        android:id="@+id/video_info_label"
        android:layout_width="match_parent"
        android:ellipsize="marquee"
        android:layout_height="wrap_content"
        android:textColor="#000000"
        android:textSize="8pt" 
        android:layout_gravity="center" />
    
</LinearLayout>

그리고 MainActivity.java 파일입니당. (import 는 생략할게욤)

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] arr = {"apple", "banana", "melon", "blueberry"};
ListView listView = (ListView)findViewById(R.id.list_view);
// ArrayAdapter<String> adapter = 
// new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arr);
MyArrayAdapter adapter = new MyArrayAdapter(this, arr);
listView.setAdapter(adapter);
}
}

class MyArrayAdapter extends ArrayAdapter<String> {
private final Context context;
private String[] values;
public MyArrayAdapter(Context context, String[] values) {
super(context, R.layout.list_item, values);
this.context = context;
this.values = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.list_item, parent, false);
}
TextView textView = (TextView)convertView.findViewById(R.id.video_info_label);
textView.setText(values[position]);
return convertView;
}
}

주석처리 된 부분(빨강 글씨)으로 돌리면 왼쪽 결과가 나오구요
파랑글씨로 된 부분으로 돌리면 오른쪽 결과가 나와요..
여기서 어케 해야 빈 공간에의 터치도 먹힐까요? ㅜ.ㅜ
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호