마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이 한줄이 의미하는바를 알고 싶습니다.

0 추천

 

안녕하세요.

 

제가 한때 스크롤뷰가 아래쪽으로 가지는 현상때문에 애를 먹었던 적이 있었는데

아래와 같이 한줄 구문을 사용함으로 인해서, 해결이 되었었는데 며칠동안

이 한줄에 대해서 계속 찾아보아도.. 어떤 기능을 하는지 전혀 알지를 못했습니다.

아래의 한줄의 대해서 알수 있을까요 ㅠ

android:descendantFocusability="blocksDescendants"
Kind카인드 (3,600 포인트) 님이 2016년 11월 24일 질문

1개의 답변

0 추천
 
채택된 답변
자식 View 들의 focusability 를 Block 처리한다.

(자식뷰들 각각에 android:focusable="false" 를 주는 것과 같은 의미일 것으로 판단됩니다.)
빅배스 (4,260 포인트) 님이 2016년 11월 24일 답변
Kind카인드님이 2016년 11월 24일 채택됨
아하..! 정말 감사드립니다!!
헤헷 ㅋㅋ 달아보았습니다~~
알림이 잘 도착하시나요?
네 잘도착하네요 ~ 그런걱정은 안하셔두 되겠어요
네 ㅋㅋ 채택 드렸습니다.. 정말 마음만 같아서는, 제 포인트를 몽땅 다 몰아드리고 싶네요.. 어차피 제 포인트 쓸때도 없는데..ㅠ
저도 포인트 쓸때없어서 안주셔도됩니다. 그냥 해본소리였어요  ㅎ
빅배스님, 이전 글의 내용중에서 궁금한 부분이 있습니다.

initSeat() 부분에서 아래와 같이 만들고 난 뒤에, 선택완료 Success 부분을

눌렀을 경우에,  TextView tv = (TextView)findViewById (mSeat.get (i));

위와 같은 한줄에서 에러가 뜨는데, 이게 리니어 레이아웃도 id값에 포함이

될수가 있다는 것이라고 이해를 했고, InitSeat() 부분에서 if조건문을 통해서

First_Seat_Layout ~ Hundred_Seat_Layout 이 아닌겨우에만 mSeat.add를 수행

하라고 해야 한다.. 라고 이 과정까지 와보았는데 정작, First_Seat_Layout부터

Hundred_Seat_Layout을 어떻게 비교를 해주어야 할지 모르겠습니다 ㅠ ㅠ

이 비교문을 만들어야, 비로소 이 한줄이 실행이 될것 같은데.. 말이죠 ㅠ

 TextView tv = (TextView)findViewById (mSeat.get (i));


** InitSeat() 함수 부분

void initSeat() {
        for (int i = 0; i < 110; i++) {
            //      if (mSeat.size() !=100) {

            mSeat.add(mSeatID + i);
            findViewById(mSeatID + i).setOnClickListener(mOnClickListener);
            findViewById(mSeatID + i).setTag(SEAT_UNSELECTED);      //(빅배스) 좌석이 선택되지 않은 상태값 설정.

            if (i < 5) {
                findViewById(mSeatID + i).setBackgroundResource(R.drawable.handicapped_checkbox_img);
            } else {
                findViewById(mSeatID + i).setBackgroundResource(R.drawable.box_image);
            }
        }
    }

** 선택완료 부분

Seat_Next_Button = (Button) findViewById(R.id.Seat_SelectionAccess_Button);
        Seat_Next_Button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(getApplicationContext(), Location_and_Seat.class);
                intent.putExtra("Seat_Total_Mount", Total_Amount);
                intent.putExtra("Adult_number", mAdult_Count);                   intent.putExtra("School_number", mSchool_Count);
                intent.putExtra("Senior_number", mSenior_Count);

                int idx=0;
                for (int i=0; i < mSeat.size (); i++){
                    TextView tv = (TextView)findViewById (mSeat.get (i));

                    Log.i ("seat", "##### i :" + i);

                    if ((int)tv.getTag () == SEAT_SELECTED){
                        intent.putExtra ("seat" + idx, tv.getText ().toString ());
                        idx++;
                    }
                }

                startActivity(intent);
            }
        });
layout  id  값 10개를 and 조건으로 넣으시면됩니다.
if((mSeat + i) != 첫번째 레이아웃 id  && 두번째 레이아웃 id && 세번째... 열번째까지){
   //기존 for문 안에있는 코드 전부 if 문안에 넣으세요
}
...