2012-08-17 58 views
0

我想動態地將textview添加到textView的右側,但textView沒有得到顯示。Textview沒有得到顯示在右邊另一個textView編程方式在android

聲明「params2.addRule(RelativeLayout.RIGHT_OF,1);」在下面的代碼是創建一個問題,如果我刪除該行textview顯示在隨機位置。

需要實現這個XML動態

<TextView 
      android:id="@+id/stationnameVal" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:text="KANYAKUMARI (CAPE)" 
      android:textColor="@color/black" 
      android:textSize="12sp" /> 

     <TextView 
      android:id="@+id/arrivaltimeVal" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_marginLeft="45dp" 
      android:layout_toRightOf="@+id/stationnameVal" 
      android:text="SRC" 
      android:textColor="@color/black" 
      android:textSize="12sp" /> 

代碼是:

RelativeLayout rel = new RelativeLayout(this); 
    // first TextView 
     RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
      LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 

     TextView stateName = new TextView(DisplayActivity.this); 
     stateName.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
      LayoutParams.WRAP_CONTENT)); 
     params.setMargins(0, 5, 0, 0); 
     stateName.setText("KANYAKUMARI (CAPE)"); 
     stateName.setId(1); 
     stateName.setTextColor(R.color.black); 
     stateName.setTextSize(12); 
     rel.addView(stateName, params); 

    // Adding Second TextView 
     RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(
      LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

     TextView arr = new TextView(DisplayActivity.this); 
     arr.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
      LayoutParams.WRAP_CONTENT)); 
     arr.setText("SRC"); 
     arr.setTextColor(R.color.white); 
     arr.setTextSize(12); 
     params2.addRule(RelativeLayout.ALIGN_PARENT_TOP, stateName.getId()); 
     params2.addRule(RelativeLayout.RIGHT_OF, 1); 
     params2.setMargins(45, 0, 0, 0); 
     rel.addView(arr, params2); 

回答

1

如何改變 「LayoutParams.FILL_PARENT」 到 「LayoutParams.WRAP_CONTENT」?

問候

紫藤陳

+0

其實我好奇的東西。是否有可能使兩個TextView都使用RelativeLayout來填充可用空間。使用LinearLayout,將使用'layout_weight。但是關於相對佈局的idk。 – Andy 2012-08-17 07:37:19

+0

@你可以使用Display Metrics來查找屏幕大小(在你的情況下是寬度),並將textView的寬度設置爲tv.setWidth(width/2);對於textViews – 2012-08-17 07:39:05

+0

嗯,這可以工作。不是一個壞主意。對於4或5個視圖是否能正確工作?均勻地分割空間可行,但奇數又如何? – Andy 2012-08-17 07:47:04

1

改變這一點:

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
      LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

或本:

rel.addView(stateName, params); 

rel.addView(stateName); 

,改變這一點:

params2.addRule(RelativeLayout.ALIGN_PARENT_TOP, stateName.getId()); 

params2.addRule(RelativeLayout.ALIGN_PARENT_TOP); 

和PARAM做同樣的:

params.addRule(RelativeLayout.ALIGN_PARENT_TOP); 

否則就刪除它,因爲康亞庫瑪瑞和src沒有正確對齊。

真正做到這一點對準他們:

params2.addRule(RelativeLayout.ALIGN_TOP, 1); 
+0

將參數從FILL_PARENT改爲WRAP_CONTENT可解決此問題。 – Badrinath 2012-08-17 08:31:18

相關問題