LinearLayoutを持つ次のmain.xmlファイルがあります
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:weightSum="1" Android:id="@+id/llid">
<TextView Android:text="Client profile"
Android:id="@+id/ProfileName"
Android:layout_width="fill_parent"
Android:textStyle="bold"
Android:layout_height="wrap_content"
Android:gravity="center_horizontal">
</TextView>
<TextView Android:text="Specs"
Android:id="@+id/Specs"
Android:layout_width="fill_parent"
Android:textStyle="bold"
Android:layout_height="wrap_content"
Android:gravity="center_horizontal">
</TextView>
</LinearLayout>
実行時にコードを介してLinearLayoutに画像を追加します
ImageView image = new ImageView(this);
image.setImageBitmap(bmp);
LinearLayout ll = (LinearLayout) findViewById(R.id.llid);
ll.addView(image);
ただし、LinearLayoutの2つのTextViewの間にImageViewを追加します。 Androidドキュメントで別のビューの前または後にビューを追加する方法を見つけることができないようです。これを行うにはどうすればよいですか?
[〜#〜] nb [〜#〜]呼び出します
setContentView(R.layout.main);
前 ImageViewをLinearLayoutに追加します。
View
をViewGroup
に追加するとき、 インデックスを指定 で親のビューの位置を設定できます。
ビューが2つあるため、(ゼロからカウントして)1番目の位置に追加します。 ll.addView(image, 1);
を呼び出して、2つのTextViews
の間に配置します。
ドキュメントには、インデックスを使用して必要な場所に挿入できると記載されています。ビューの署名のみを使用しているようですが、indexパラメーターを使用して署名を試しましたか?
public void addView(View child, int index)
同様の問題に直面しました。私の場合、別のLinearLayoutの最後の位置にLinearLayoutを追加したかった。それを達成するために、私はやった:
LinearLayout parentLayout = (LinearLayout) findViewById(R.id.parentLayout);
LinearLayout layout = new LinearLayout(this);
layout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
// add others views to your linear layout
parentLayout.addView(layout, parentLayout.getChildCount());
setContentView(R.layout.main);
ImageView img = (ImageView) findViewById(R.id.imagefield);
img.setImageResource(your_image_here);
およびxml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:weightSum="1"
Android:id="@+id/llid">
<TextView Android:text="Client profile"
Android:id="@+id/ProfileName"
Android:layout_width="fill_parent"
Android:textStyle="bold"
Android:layout_height="wrap_content"
Android:gravity="center_horizontal">
</TextView>
<ImageView Android:id="@+id/imagefield"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content">
</ImageView>
<TextView Android:text="Specs"
Android:id="@+id/Specs"
Android:layout_width="fill_parent"
Android:textStyle="bold"
Android:layout_height="wrap_content"
Android:gravity="center_horizontal">
</TextView>
</LinearLayout>
ImageViewをxmlに追加し、使用されていない場合は非表示にします(image.setVisibility(View.INVISIBLE))
。画像が設定されていない場合、とにかく何も表示されない場合があります。
ビューグループ内のビューの位置を取得するには
val targetPosition = oldLL.indexOfChild(viewToAdd)
ビューグループ内の位置にビューを追加するには
newLL.addView(viewToAdd,targetPosition)