2014-12-07 65 views
0

我需要在一个布局中添加视图,并在每个行的末尾添加一行,从左到右填充每行。想象一下,布局是一篇论文,你写的每一个字都是一个文本视图,你必须写一个长文本。我甚至不知道我应该使用哪种布局,有没有人有想法?将视图添加到布局运行时,在行结束时继续:How To?

+1

你是什么 意味着“在布局中在该行的末尾走在前面。” ? – Rami 2014-12-07 17:24:31

+0

对不起,我没有解释得很好。无论如何,我编辑的问题,它应该更清楚=) – user3415993 2014-12-07 17:38:37

+0

据我所知,在android中没有默认布局(*在一个*的末尾换行)。我认为你需要创建一个自定义布局。 – Rami 2014-12-07 17:49:53

回答

0

我认为你正在寻找设置为水平方向的LinearLayout。像下面的东西。我已经使用了两个TextView,但你可以使用任何你喜欢的视图。它们将水平向右堆叠。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" 
    android:gravity="left" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Item 1" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Item 2" /> 

    <!-- etc. --> 

</LinearLayout> 
+0

但这只是从左到右填充行,我需要在一行结束时去换行。 – user3415993 2014-12-07 17:39:40

+0

我明白了。没有默认的布局。你可以建立你自己的自定义布局来做到这一点,但这将是一些工作。你不能只用一个TextView并用你想要的文本填充它吗?它具有自动换行功能,支持粗体,斜体和下划线文本。如果你需要比你更复杂的东西,那么你就会陷入自己的包装布局之中。 – 2014-12-07 17:48:16

0

我会去嵌套LinearLayouts。从一个垂直的LinearLayout和一个水平的LinearLayout开始。然后添加一个视图:

  • 测量视图(我们称之为'myView')。

然后:

if(currentHorizontalLayout.getChildCount==0 || 
    myView.getWidth() > currentHorizontalLayout.getWidth()-currentHorizontalLayout.getChildAt(currentHorizontalLayout.getChildCount()-1)).getRight()){ 

    currentHorizontalLayout = new LinearLayout(getContext()); 
    verticalLayout.addView(currentHorizontalLayout); 
    currentHorizontalLayout.addView(myView); 
}