我正面临一个让我发疯的问题。就是这样。我有一个可扩展的列表活动,它显示媒体文件。一组是音频文件,另一组是图像文件。AudioGroup 的孩子有一种布局,ImageGroup 的孩子有另一种不同的布局。这是我正在使用的代码
可扩展列表适配器,儿童视图部分
@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;
}
音响集团的布局
<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>
图像组布局
<?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 布局没有填满整个宽度。ImageGroup 布局一团糟,就像看不到我写的权重一样。
有谁知道这到底是怎么回事?
我已经测试过的东西:
每个布局中主 LinearLayout 上的 fill_parent、match_parent、wrap_content 等的每个组合。
尝试只使用 dp meassure 做事(这有效,但不是我想要的)
尝试在 ImageGroup 布局上使用另一个图像
- 使用 ViewHolder 和 convertView 来管理 getChildView 方法中的布局
任何这些东西(除了使用 dp 大小)都有效,但我愿意接受建议,即使如果意味着再做一次。
谢谢你们