예전에 만들었던 유투브 어플..... 간간히 유지보수중입니당.
이게 바로 오늘 문제가 되는 부분입니다.
문제는 위에 그림에서 볼 수 있듯이, 터치 영역이 좁아요....
저기 "외톨이" 오른쪽 부분을 터치하면 터치 이벤트가 안생겨요 ㅜㅜ
일단 문제를 간소화 시켜봤어요.
전체 코드를 올리자니 너무 많고 복잡해서요 ㄷㄷ
위에 두 녀석의 차이점이 있다면 "터치 영역"이에요.
왼쪽껀 텍스트가 적혀있지 않은 빈 공간을 터치하더라도 터치이벤트가 발생하고
오른쪽껀 텍스트가 젹혀있는 공간만이 터치이벤트를 발생시켜요.
코드를 올려보겠습니다.
먼저 activity_main.xml 파일입니당.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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>
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;
}
}
주석처리 된 부분(빨강 글씨)으로 돌리면 왼쪽 결과가 나오구요
파랑글씨로 된 부분으로 돌리면 오른쪽 결과가 나와요..
여기서 어케 해야 빈 공간에의 터치도 먹힐까요? ㅜ.ㅜ