4

私はまだAndroidを学んでいるだけなので(AmazonはHello、Androidの本を手に入れるまで2か月かかると言っているようです)、私はまだ簡単なことをやって遊んでいます。ImageViewを使用してRelativeLayoutのボタンをクリックするだけでアイコンを表示するのに問題はありません。それを作成するためのコードは次のとおりです。

private int mIconIdCounter = 1;
private ImageView addIcon(){
    ImageView item = new ImageView(this);
    item.setImageResource( R.drawable.tiles );
    item.setAdjustViewBounds(true);
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT );
    if( mIconIdCounter != 1 ){
        params.addRule(RelativeLayout.RIGHT_OF, 1 );
    }
    item.setLayoutParams( params );
    item.setId( mIconIdCounter );
    ++m_IconIdCounter;
    return item;
}

アイテムを追加するコードは次のとおりです。

Button addButton = (Button)findViewById(R.id.add_new);
addButton.setOnClickListener( new OnClickListener(){
    @Override
    public void onClick(View view) {
        addContentView( addIcon(), new RelativeLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT ) );
    }
});

ボタンをクリックすると、新しく作成されたすべてのビューが互いに重なり合って配置されます。次の要素の右側に配置してほしい。私はSOでRelativeLayoutに関連する記事をすばやく検索し、類似したもの(ここここここ、およびここ)を見つけましたが、これらはコンテンツをRelativeViewに取り込むことを扱っていましたが、ポジショニングの側面を扱っていないようです。

私は何が間違っているのですか?

編集:

私のメインxmlは次のようになります:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <Button
        android:id="@+id/add_new"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/add_new"
        android:layout_alignParentBottom="true" />
</RelativeLayout>
4

2 に答える 2

8

レイアウトxmlのルートにRelativeLayoutではなくビューを追加しているようです。

あなたは試すことができます:

RelativeLayout layout = (RelativeLayout)findViewById(R.id.my_layout);
layout.addView(addIcon());
于 2010-11-24T17:41:01.963 に答える
0

関数呼び出し内に新しい相対レイアウトを作成しています。したがって、新しい相対レイアウトが作成され、ボタンをクリックするとビューに追加されるたびに。一般的な相対レイアウトを使用します。

于 2010-11-24T17:42:08.893 に答える