Android 的断行小组件布局
问题:
在 Android 应用程序中,您可能拥有可分为小部件的数据,每个小部件代表一个单词。要显示此数据,您需要将小部件排列成行,类似于文本段落,以便在必要时允许它们换行到下一行。
建议的解决方案:
实现一个称为 PredicateLayout 的自定义布局,它模仿文本的换行行为。此布局通过将子视图排列成行来管理子视图,并在到达行尾时换行。
代码示例:
public class PredicateLayout extends ViewGroup { private int line_height; // ... @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // ... for (int i = 0; i < count; i++) { // ... final LayoutParams lp = (LayoutParams) child.getLayoutParams(); // ... line_height = Math.max(line_height, child.getMeasuredHeight() + lp.height); // ... } this.line_height = line_height; // ... } // ... }
用法:
在 Activity 中,您可以按如下方式使用此自定义布局:
public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { // ... PredicateLayout l = new PredicateLayout(this); // ... setContentView(l); } }
结果:
PredicateLayout 有效地排列行中的小部件,当超出宽度限制时换行到下一行。这允许将数据显示为包装的类似文本的段落。
以上是如何在Android中实现Widget的换行布局?的详细内容。更多信息请关注PHP中文网其他相关文章!