ExpandableListAdapter.getChildView에서 발생하는 문제를 디버그하려고합니다.Android GradientDrawable - Corner Radii 문제
목록 항목의 배경에 그라디언트와 반지름이 1 인 모서리가있는 모양이있는 드로어 블을 정의했습니다. 특별한 것은 없습니다.
그런 다음 내 어댑터 코드에서, 나는 getChildView 내에서이 조각이 여기
GradientDrawable background = (GradientDrawable) convertView.getBackground();
float topRadius = 0;
float bottomRadius = 0;
// Make the corner radius obvious for debugging
if (childPosition == 0)
topRadius = 14;
if (childPosition == (mValues.size() - 1))
bottomRadius = 14;
background.setCornerRadii(new float [] { topRadius, topRadius,
topRadius, topRadius,
bottomRadius, bottomRadius,
bottomRadius, bottomRadius});
convertView.setBackgroundDrawable(background);
시도가 첫 번째 목록 항목의 맨 마지막 목록 항목의 바닥을 둥글게하는 것입니다. 디버깅을 통해 원하는 항목에 대해 원하는 값을 설정하는 것처럼 보입니다.
그러나 내가 가지고있는 문제는 모서리 반경이 모든 목록 항목에 대해 맨 아래 항목 인 것처럼 설정된다는 것입니다.
약간의 차이는 있지만 적어도 디버깅 목적으로 GradientDrawable의 코너 반경을 가져 오는 방법이 있습니까?
감사합니다,
WTS
잘 모르겠 으면 반경이 알려진 버그가 있다는 것을 지적하고, 반올림하지 않으려는 모서리에는 항상 0 대신 0.1f를 사용해야합니다. http://code.google.com/p/android/issues/detail?id=939를 참조하십시오 -하지만 당신의 방법은 반대라고 생각합니다. 아마도 아마리스트 어댑터 로직과 관련이있을 것입니다. –
모서리 반지름을 얻을 수 없다고 생각합니다. http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android /graphics/drawable/GradientDrawable.java#GradientDrawable. 드로어 블을 xml로 정의하려고 시도 했습니까? –
@Mathias : 기본 drawable은 xml이지만 첫 번째 항목과 마지막 항목 만 수정해야합니다. –