나는 화를 내고있는 문제에 직면하고 있습니다. 그게 문제 야. 미디어 파일을 보여주는 확장 가능한 List Activity가 있습니다. 하나의 그룹은 오디오 파일이고, 다른 그룹은 이미지 파일입니다. AudioGroup의 자식에는 하나의 레이아웃이 있고 ImageGroup의 자식에는 다른 레이아웃이 있습니다. 이것은 내가Android ExpandableList 활동 내역 안드로이드 : layout_weight 작동하지 않음
을 사용하고 코드입니다EXPANDABLE LIST 어댑터, CHILDVIEW 부분
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
inflaterChild=activity.getLayoutInflater();
convertView=null;
//seleccionamos el layout que nos convenga en funcion de si es audio o imagen
//audio
if(mediaObjects.get(groupPosition).getFiles().get(childPosition).getTipo()==1){
viewChild=inflaterChild.inflate(R.layout.layout_child_media_musica, null);
descripcion=(TextView)viewChild.findViewById(R.id.descripcionMusica);
descripcion.setText(Html.fromHtml(mediaObjects.get(groupPosition).getFiles().get(childPosition).getDescripcion()));
}
//imagen
if(mediaObjects.get(groupPosition).getFiles().get(childPosition).getTipo()==2){
viewChild=inflaterChild.inflate(R.layout.layout_media_imagenes, null);
thumbnail=(ImageView)viewChild.findViewById(R.id.thumbnailMedia);
thumbnail.setImageResource(R.drawable.portada);
descripcion=(TextView)viewChild.findViewById(R.id.descripcionImagen);
descripcion.setText(Html.fromHtml(mediaObjects.get(groupPosition).getFiles().get(childPosition).getDescripcion()));
}
return viewChild;
}
LAYOUT IMAGEGROUP
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
tools:context=".Media"
android:orientation="horizontal"
android:weightSum="100">
<ImageView
android:id="@+id/thumbnailMedia"
android:layout_width="0dp"
android:layout_weight="35"
android:layout_height="50dp"
android:scaleType="fitXY"
android:contentDescription="@string/desc"/>
<TextView
android:id="@+id/descripcionImagen"
android:layout_width="0dp"
android:layout_weight="65"
android:layout_height="50dp"/>
</LinearLayout>
에 대한 AUDIOGROUP
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
tools:context=".Media"
android:orientation="vertical"
android:id="@+id/childMediaMusica"
android:weightSum="100">
<TextView
android:id="@+id/descripcionMusica"
android:layout_height="0dp"
android:layout_weight="30"
android:layout_width="match_parent"/>
<LinearLayout
android:id="@+id/contenedorBotones"
android:layout_height="0dp"
android:layout_weight="70"
android:layout_width="match_parent"
android:orientation="horizontal"
android:weightSum="100">
<Button
android:id="@+id/playStop"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="50"/>
<Button
android:id="@+id/down"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="50"/>
</LinearLayout>
</LinearLayout>
레이아웃 당신은 그건 알 수 있듯이 아주 간단한 코드. 음, 그 결과입니다 :
AudioGroup 레이아웃 전체 폭을 작성하지 않습니다. ImageGroup 레이아웃이 엉망입니다. 마치 내가 쓴 가중치를 볼 수 없었습니다.
도대체 무슨 일이 일어나는 지 아는 사람이 있습니까?
일이 이미 테스트 : 각 레이아웃의 주요의 LinearLayout에 fill_parent, match_parent, wrap_content 등의
모든 조합.
하는 전용 (작동하지만 내가 원하는 것은 아니다) DP의 meassure를 사용하여 일을 시도
내부 레이아웃을 관리 할 수 ImageGroup 레이아웃
- 사용 ViewHolder 및 convertView 물건에 다른 이미지를 사용해보십시오 getChildView 메서드
이러한 것들은 (dp 크기를 사용하는 것을 제외하고는) 작동하지만, 다시 한 번 제안 할 때도 열려 있습니다.
는 당신에게 모든