"AdapterView <ListAdapter>"을 확장하는 클래스 A를 만들고 데이터를 제공하는 "BaseAdapter"를 확장하는 클래스 D를 만듭니다.AdapterView 항목이 부모를 채우지 않음
문제는 모든 AdapterView 항목의 길이가 AdapterView의 길이로 늘어나지 않고 각 항목의 길이가 항목의 텍스트 길이와 동일하기 때 문에 다릅니다. 내가 "FILL_PARENT"로 설정할 수있는 모든 레이아웃 매개 변수를 설정했지만 그건 의미가 없습니다.
어떤 클래스를 검사해야합니까? AdapterView 하위 클래스 또는 BaseAdapter 하위 클래스 또는 AdapterView 항목의 TextView 하위 클래스? (나는 약간의 효과를 얻기 위해 TextView를 서브 클래스 화한다).
의 getView 방법 :
public View getView(int position, View convertView, ViewGroup viewGroup) {
ViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(
R.layout.colselector_menu_item, null);
holder = new ViewHolder();
convertView.setTag(holder);
TextView tv = new VerticalTextView(viewGroup.getContext());
tv.setTextColor(Color.RED);
NewsInTimeApp app = (NewsInTimeApp) (((MainActivity) context)
.getApplication());
tv.setTextSize(Integer.parseInt(app.getConfig().get(
AppConfig.CFGNAME_UI_MAIN_COLSELECTOR_TEXTSIZE)));
((LinearLayout) convertView).addView(tv);
holder.groupItem = tv;
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.groupItem.setText(list.get(position).getName());
holder.collId = list.get(position).getId();
return convertView;
}
colselector_menu_item.xml : 뷰를 추가 할 때
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#e1e1e1"
android:orientation="horizontal" >
<View
android:layout_width="1dp"
android:layout_height="fill_parent"
android:background="@android:color/darker_gray"/>
</LinearLayout>
모두 확인하십시오. 그들에 대한 코드를 보여주는 것도 도움이 될 것입니다. – Geobits
@Geobits 적어도 3 가지 클래스와 3 가지 레이아웃 xml이 있으며 너무 지저분 해 보입니다. 스냅 샷을 업로드했습니다 : http://img38.imageshack.us/img38/606/9120120911103900.png 파란색으로 표시된보기는 팝업 안에있는 AdapterView이고 밝은 회색으로 표시된보기는 AdapterView 항목입니다. AdapterView의 높이가 어떤 항목보다도 높다는 것을 알 수 있습니다. – realjin
맞아요.하지만 당신이 얻는 것은 "wrap_content"의 정의입니다. 그래서 뭔가가 올바르게 설정되지 않습니다. 모든 레이아웃을 확인하고 특히 코드를 팽창시키는 위치를 확인하십시오. 적어도, 어댑터의 getView 메소드의 코드를 붙여 넣으십시오. 매개 변수를 설정하거나 뷰를 팽창시키는 것이 범인이 될 수 있지만 코드를 전혀 보지 않아도 범위를 좁히는 것은 불가능합니다. – Geobits