ExpandableList에서 버튼을 클릭할 수 없습니다.

ExpandableList에서 group layout에 다음과 같이 버튼을 추가 했더니 버튼은 클릭이 되지만 group 클릭할 수 없는 경우가 있습니다.

📚 0
📅 2023-07-21

ExpandableList에서 group layout에 다음과 같이 버튼을 추가 했더니 버튼은 클릭이 되지만 group  클릭할 수 없는 경우가 있습니다. 

- list_group.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/listTitle"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="20dp"
            android:textColor="@android:color/white"
            android:paddingTop="10dp"
            android:paddingBottom="10dp" />
        <Button
            android:layout_width="80dp"
            android:layout_height="60dp"
            android:layout_alignParentRight="true"
            android:text="Play" />
    </RelativeLayout>
</LinearLayout>

이런 경우 다음과 같이 xml 레이아웃에서 버튼 포커스를 false로 설정한 다음 기존 게시물을 기반으로 이를 변경하고 focusable을 false로 동적으로 설정했습니다

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/listTitle"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="20dp"
            android:textColor="@android:color/white"
            android:paddingTop="10dp"
            android:paddingBottom="10dp" />
        <Button
            android:layout_width="80dp"
            android:layout_height="60dp"
            android:descendantFocusability="blocksDescendants"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:layout_alignParentRight="true"
            android:text="Play" />
    </RelativeLayout>
</LinearLayout>

이 글과 함께 연습해보세요

읽은 내용을 Play Lab에서 바로 실행해볼 수 있어요.

Coding Quest · 빈칸

True/False 출력

비교 결과가 어떻게 출력되는지 예측하세요.

바로 연습하기
Coding Quest · 알고리즘

간식 바구니 최대 만족도 채우기 (전체 구현)

N종류의 간식이 있고, 각 간식은 부피 w와 만족도 v를 가지며 종류별로 원하는 만큼 여러 번 담을 수 있습니다. 바구니의 최대 부피 한도 cap을 넘지 않도록 담아 얻을 수 있는 만족도 합을 최대화하세요. 그 최댓값을 출력하세요. [학습 포인트] 무한 배낭 형태입니다. 만족도 최대화가 목표이며, 종류별 재고 제한이 없습니다. 용량 루프 방향(오름차순)이 핵심입니다.

바로 연습하기
Coding Quest · 빈칸

갱도 붕괴 위험 최소화 경로

폐광 갱도가 R행 C열 격자 형태로 되어 있고, 칸마다 붕괴 위험도(정수)가 적혀 있습니다. 왼쪽 위 칸(1,1)에서 출발해 오른쪽 또는 아래로만 이동하여 오른쪽 아래 칸(R,C)까지 도착할 때, 지나는 모든 칸(출발·도착 칸 포함)의 위험도 합이 최소가 되도록 이동하세요. 그 최소 합을 출력하세요.

바로 연습하기
Coding Quest · 알고리즘

갱도 붕괴 위험 최소화 경로 (C)

폐광 갱도가 R행 C열 격자 형태로 되어 있고, 칸마다 붕괴 위험도(정수)가 적혀 있습니다. 왼쪽 위 칸(1,1)에서 출발해 오른쪽 또는 아래로만 이동하여 오른쪽 아래 칸(R,C)까지 도착할 때, 지나는 모든 칸(출발·도착 칸 포함)의 위험도 합이 최소가 되도록 이동하세요. 그 최소 합을 출력하세요.

바로 연습하기
Coding Quest · 알고리즘

갱도 붕괴 위험 최소화 경로 (전체 구현)

폐광 갱도가 R행 C열 격자 형태로 되어 있고, 칸마다 붕괴 위험도(정수)가 적혀 있습니다. 왼쪽 위 칸(1,1)에서 출발해 오른쪽 또는 아래로만 이동하여 오른쪽 아래 칸(R,C)까지 도착할 때, 지나는 모든 칸(출발·도착 칸 포함)의 위험도 합이 최소가 되도록 이동하세요. 그 최소 합을 출력하세요.

바로 연습하기