0
프로그래밍 방식으로 행의 높이를 설정하고 있습니다. 그러나이 작업을 수행 한 후 다른 항목을 클릭 할 때까지 내 ListView의 첫 번째 항목을 클릭하면 멈 춥니 다. 그래야만 기능이 시작됩니다. 레이아웃 매개 변수를 설정하지 않으면 제대로 작동합니다. 나는 정말 당황 스럽다. 다음은 레이아웃을 설정하는 위치입니다.안드로이드 ListView setLayoutParams가 첫 번째 항목을 클릭하면 멈 춥니 다.
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
//Get the TextView and CheckBox of each row
if (convertView == null) {
LayoutInflater inflator = context.getLayoutInflater();
convertView = inflator.inflate(R.layout.row, null);
viewHolder = new ViewHolder();
viewHolder.name = (TextView) convertView.findViewById(R.id.text1);
viewHolder.checkBox = (CheckBox) convertView.findViewById(R.id.check);
viewHolder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int getPosition = (Integer) buttonView.getTag(); // Here we get the position that we have set for the checkbox using setTag.
list.get(getPosition).setChecked(buttonView.isChecked()); // Set the value of checkbox to maintain its state.
}
});
convertView.setTag(viewHolder);
convertView.setTag(R.id.check, viewHolder.checkBox);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.checkBox.setTag(position);
//Set row height to height of the action bar *************CODE IN QUESTION
final TypedArray styledAttributes = getContext().getTheme().obtainStyledAttributes(
new int[] { android.R.attr.actionBarSize });
int mActionBarSize = (int) styledAttributes.getDimension(0, 0);
styledAttributes.recycle();
convertView.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.WRAP_CONTENT, mActionBarSize));
convertView.requestLayout(); //**************************CODE IN QUESTION
//Set name and state of checkbox
viewHolder.name.setText(list.get(position).getName());
viewHolder.checkBox.setChecked(list.get(position).IsChecked());
final ViewHolder holder = (ViewHolder) convertView.getTag();
final ListView lv = (ListView) parent;