0

RelativeLayout の一部の要素をプログラムで整列しようとしていますが、問題が発生しています。すべての TextView 要素は、差別的に設定した場合でも、左上隅に配置されます。ここに私のスクリーンショットがあります: ここに画像の説明を入力

これが私のコードです(thisRelativeLayoutです):

        title = new TextView(context);
        date = new TextView(context);
        rating = new RatingBar(context);
        saleImage = new ImageView(context);
        arrowImage = new ImageView(context);

        RelativeLayout.LayoutParams relativeLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
        this.setBackgroundResource(R.drawable.list_selector);
        this.setLayoutParams(relativeLayoutParams);
        this.setClickable(true);

        relativeLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
        saleImage.setLayoutParams(relativeLayoutParams);
        saleImage.setImageResource(R.drawable.rihanna);
        this.addView(saleImage);

        relativeLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
        relativeLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
        relativeLayoutParams.addRule(RelativeLayout.CENTER_VERTICAL, RelativeLayout.TRUE);
        arrowImage.setImageResource(R.drawable.arrow);
        arrowImage.setLayoutParams(relativeLayoutParams);
        this.addView(arrowImage);

        relativeLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
        relativeLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
        relativeLayoutParams.addRule(RelativeLayout.RIGHT_OF, saleImage.getId());
        title.setLayoutParams(relativeLayoutParams);
        title.setTextAppearance(context, android.R.style.TextAppearance_Medium);
        title.setText("Sale title");
        this.addView(title);

        relativeLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
        relativeLayoutParams.addRule(RelativeLayout.CENTER_VERTICAL, RelativeLayout.TRUE);
        relativeLayoutParams.setMargins(0, 0, 26, 0);
        relativeLayoutParams.addRule(RelativeLayout.LEFT_OF, arrowImage.getId());
        date.setTextAppearance(context, android.R.style.TextAppearance_Small);
        date.setText("14.01.13 22:00");
        this.addView(date);

問題はRelativeLayout.RIGHT_OFandRelativeLayout.LEFT_OF属性にあるようです。

アクティビティコードは次のとおりです。

public class MainPage extends Activity {
    private LinearLayout test;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_sales);

        test = (LinearLayout)findViewById(R.id.salesConteiner);
        SaleRow row = new SaleRow(this);
        test.addView(row);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) 
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main_page, menu);
        return true;
    }

}

私が見逃したものはありますか?ありがとう!!!

4

1 に答える 1

0

関数を機能させるには、view.getId()最初に id: を設定する必要がありますview.setId(1)

助けてくれてありがとう!!!

于 2013-05-17T07:24:59.627 に答える