【问题标题】:Android: Add a view to a specific Layout from codeAndroid:从代码中将视图添加到特定布局
【发布时间】:2010-08-13 14:05:03
【问题描述】:

我想将一些视图动态添加到已在 XML 中定义的LinearLayout

我可以向屏幕添加视图,但它们没有被放置在右侧LinearLayout 的“内部”。

如何从代码中获取对这个特定布局的引用,类似于使用findViewById() 获取View

【问题讨论】:

  • 如果您的视图最终不在正确的 LinearLayout 中,则意味着您对它的引用不正确。尝试检查您是否以正确的方式通过 id 找到线性布局(也就是通过它在 XML 文件中定义的唯一 ID)。而且没有代码,也没什么好说的。

标签: android layout


【解决方案1】:

正如 Marcarse 指出的那样,你可以做到

ViewGroup layout = (ViewGroup) findViewById(R.id.your_layout_id);
TextView tv = new TextView(this);
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tv.setText("Added tv");
layout.addView(tv);

LinearLayout 类扩展了 ViewGroup,它本身扩展了 View 类。这使得获取对布局的引用就像获取对另一个视图的引用一样容易。

【讨论】:

  • 为我工作,谢谢!只有一个注释,在我的情况下,我使用的是水平方向,但每次我添加新项目时,它都没有出现。只有当我将方向更改为垂直时,才会出现新项目。
【解决方案2】:

这应该可行:

LinearLayout layout = (LinearLayout) findViewById(R.id.your_layout_id);
TextView tv = new TextView(this);
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tv.setText("Added tv");
layout.addView(tv);

【讨论】:

  • 每次我重新加载活动时,新添加的视图都不会出现。我想知道如何将这些视图设为ViewGroup 以便永久添加它们?谢谢
【解决方案3】:

更好的版本: 在activity/Fragment中添加另一个布局

LayoutInflater mInflater = LayoutInflater.from(getActivity());
View mProgressBarFooter = mInflater.inflate(R.layout.spinner, null, false);
textLoader = (TextView) mProgressBarFooter.findViewById(R.id.footer_label);

快乐编码(-:

【讨论】:

  • 答案与问题有何关联?
  • 这就是我要找的。​​span>
猜你喜欢
  • 1970-01-01
  • 2021-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-17
  • 1970-01-01
  • 2012-02-14
  • 1970-01-01
相关资源
最近更新 更多