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

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;
}
}



주석 처리한 부분 (ArrayAdapter<String> dapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arr);) 으로 돌리면 왼쪽 결과가 나오고
(MyArrayAdapter adapter = new MyArrayAdapter(this, arr);) 이걸로 돌리면 오른쪽 결과가 나옵니다.

여기서 뭘 어케 해야 되는걸까요? ㅜㅜ



꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호