私は気が狂うような問題に直面しています。それが問題です。メディア ファイルを表示する展開可能なリスト アクティビティがあります。1 つのグループは音声ファイルで、もう 1 つのグループは画像ファイルです。AudioGroup の子には 1 つのレイアウトがあり、ImageGroup の子には別の異なるレイアウトがあります。これは私が使用しているコードです
拡張可能なリスト アダプター、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;
}
オーディオグループのレイアウト
<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測定のみを使用して何かをしてみてください(それは機能しますが、私が望むものではありません)
ImageGroup レイアウトで別の画像を使用してみてください
- ViewHolder と convertView を使用して、getChildView メソッド内のレイアウトを管理します。
これらのいずれか (dp サイズを使用する場合を除く) は機能しますが、再度実行することを意味する場合でも、提案を受け付けています。
皆さん、ありがとうございました