简体   繁体   中英

android: How to insert a bottom aligned view without layout.xml?

I want to insert views dynamically by using addView method, like this.

TextView view = new TextView(this);
view.setText("foo");
ViewGroup parentView = (ViewGroup) findViewById(R.id.main_layout);
parentView.addView(view);

How can I align bottom the inserted view?

Try this you will get the result:

    RelativeLayout parent = (RelativeLayout) findViewById(R.id.llayout);
        TextView textView = new TextView(this);
        textView.setText("foo");
    RelativeLayout.LayoutParams params= new RelativeLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, textView.getId());
    textView.setLayoutParams(params);

    parent.addView(textView);

May be you could try to use a RelativeLayout instead of a ViewGroup , like this:

    RelativeLayout parent = (RelativeLayout) findViewById(R.id.layout_parent);
    TextView tv = new TextView(this);
    tv.setText("foo");

    RelativeLayout.LayoutParams lp= new RelativeLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, tv.getId());
    tv.setLayoutParams(lp);

    parent.addView(tv);

Below code will align textview with bottom

   TextView view = new TextView(this);
   view.setText("foo");

   RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
           ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
   params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, view.getId());

   view.setLayoutParams(params);
   ViewGroup parentView = (ViewGroup) findViewById(R.id.viewgroup);
   parentView.addView(view);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM