2013-06-05 194 views
0

我在一個線性佈局動態添加意見如下:機器人添加視圖動態

XML:

<LinearLayout 
      android:id="@+id/part1" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:gravity="right" 
      android:orientation="horizontal" > 
</LinearLayout> 

的java:

View linearLayout = findViewById(R.id.part1); 

    ((LinearLayout) linearLayout).removeAllViews(); 

    for (int i = 0; i < 15; i ++){ 


     TextView tv = new TextView(this); 
     tv.setText(String.valueOf(i)); 
     LinearLayout.LayoutParams lay = new LinearLayout.LayoutParams(
       LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

     tv.setLayoutParams(lay); 
     tv.setBackgroundResource(R.drawable.msg); 
     tv.setId(i); 
     ((LinearLayout) linearLayout).addView(tv); 

    } 

現在我有兩個問題:

1)文本視圖水平添加正確,但如果不適合屏幕尺寸,其中一些不會出現,如何迫使它在水平空間已滿時繼續添加新的線?

2)textviews從左到右添加,如何從右到左添加它們?

感謝

回答

0

你需要了解如何ViewGroups工作,在這種情況下,將LinearLayout中水平或垂直添加項目而不進行位置計算爲你,除非你明確指定(跳轉到下一行是不是其中之一.. ),把它看作是一個物品的擁有者,它只會在你指定的空間上顯示物品(這就是爲什麼一些元素消失了......),默認情況下,LinearLayout安排物品的方式是從左到右或者直到如果這不適合你的需求,你可以去任何Android的ViewGroup選項,最重要的可能是:

RelativeLayout FrameLayout TableLayout AbsoluteLayout(不推薦)

如果你需要某種在屏幕上自由繪製的,你可以隨時去View對象,重寫的onDraw,並與該對象的畫布玩...

關心!

+0

感謝馬丁傳遞的問題,如此讚賞..其實我知道其他類型的佈局,但他們不會適合我的設計..我剛剛找到某事類似於我在想什麼,但我會仍然嘗試它,然後檢查從右到左的問題,它被稱爲流佈局.. https://github.com/ApmeM/android-flowlayout –