gpt4 book ai didi

android - 以编程方式在 Activity 中定位项目。没有XML

转载 作者:行者123 更新时间:2023-11-29 22:11:38 24 4
gpt4 key购买 nike

我有一个动态添加所有显示元素的 Activity 。根本没有用于 Activity 的 xml。

Activity 由以下控件组成:

  1. RelativeLayout(所有 subview 所在的布局对象)
  2. TextView(页面标题,位于 RelativeLayout 顶部)
  3. ScrollView(包含所有数据控件的可滚动区域)
  4. LinearLayout(放置 Activity 按钮的布局对象)

我想知道如何定义 ScrollView 位于 Title TextView 下方和 LinearLayout 按钮支架上方,其中 LinearLayout 设置为 Activity 页面底部

我曾尝试使用 RelativeLayout.LayoutParams 来设置规则,但似乎无法理解其实现方式。任何帮助或教程链接将不胜感激

我已经包含了我的代码,看看是否有人可以提供帮助

    // declare the items for display
RelativeLayout baseLayout = new RelativeLayout(this);
// add the customer name and number field.
// NOTE: We will always require this widget regardless of dialog design fields
tvCustomerNameNumber = new TextView(this);
tvCustomerNameNumber.setTextSize(20);
tvCustomerNameNumber.setText("Customer Name & Number");

// build up the linear layout of controls
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);

// Scroll view.
// NOTE: We will always need this widget to enable us to scroll the page
// if too many items are added for the display size
ScrollView sv = new ScrollView(this);
sv.addView(ll);

// buttons
LinearLayout buttons = new LinearLayout(this);
buttons.setOrientation(LinearLayout.HORIZONTAL);

// button edit
Button edit = new Button(this);
edit.setId(EDIT_BUTTON_ID);

// button save
Button save = new Button(this);
save.setId(SAVE_BUTTON_ID);

// button cancel
Button cancel = new Button(this);
cancel.setId(CANCEL_BUTTON_ID);

// add each button to the button layout
buttons.addView(edit);
buttons.addView(save);
buttons.addView(cancel);

// Scroll view Layout parameters
RelativeLayout.LayoutParams scrollParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
scrollParams.addRule(RelativeLayout.BELOW, tvCustomerNameNumber.getId());
scrollParams.addRule(RelativeLayout.ABOVE, buttons.getId());

// buttons Layout parameters
RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
buttonParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
buttonParams.addRule(RelativeLayout.BELOW, sv.getId());

// add the customer name number field to the base layout
baseLayout.addView(tvCustomerNameNumber);
// add the scroll view to the base layout
baseLayout.addView(sv); //, scrollParams);
// add the buttons to the base layout
baseLayout.addView(buttons, buttonParams);

// set the content view
this.setContentView(baseLayout);

最佳答案

Deva 已经回答了你的问题,但在我看来你可以像上面描述的那样定义一个 xml 布局,膨胀它并以编程方式动态填充它......也许布局最初包含一个空的 LinearLayout,和/或者没有为 TextView 设置文本,甚至可以将所有内容设置为 android:visibility="gone"并在添加/更新所有 View 时显示它?

关于android - 以编程方式在 Activity 中定位项目。没有XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9482175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com