2015-05-26 89 views
0

我有一個RelativeLayout包含一個TextView。 我想在onCreateView方法中以編程方式在現有的TextView下追加一個新的TextView,但是當我嘗試這樣做時發生了什麼,就是我以編程方式添加的TextView與現有的TextView重疊。 更多細節如下:將TextView附加到RelativeLayout中

public static class ContentTours extends Fragment{ 
    public static String TOUR_NAME= "tour_info"; 
    View view = getView(); 
    TextView contentTour;RelativeLayout toursView; 
    public ContentTours(){ 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     view = inflater.inflate(R.layout.tours_view, container, false); 

     toursView = (RelativeLayout) view.findViewById(R.id.rel_layout); 
     contentTour = (TextView) view.findViewById(R.id.tours); 

     contentTour.setText(getArguments().getString("2")); 

     ViewGroup.LayoutParams stt = contentTour.getLayoutParams(); 

     TextView nt = new TextView(getActivity().getBaseContext()); 

     nt.setText(getArguments().getString("1")); 

     toursView.addView(nt, new ViewGroup.MarginLayoutParams(stt)); 
     return view; 
    } 
} 

我有一個包含TextView的RelativeLayout。 tours_view.xml

<RelativeLayout android:id="@+id/rel_layout"  
xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" android:layout_height="match_parent" 
    android:layout_marginBottom="16dp"> 

    <TextView android:id="@+id/tours" android:clickable="true" 
     android:background="?android:selectableItemBackground" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="32dp" 
     android:text="Lorem ipsum"/> 

</RelativeLayout> 

的原因,我有一個Fragment類是tours_view.xml的是,我申請到另一個FrameLayout的佈局。

+0

您想在onCreateView方法中添加文字視圖作爲示例嗎?只有在需要創建片段時纔會調用onCreateView。所以你將只有一個獨特的TextView裏面。 –

+0

我發佈的佈局('tours_view.xml')應用於文件'frag_account.xml'(此處爲完整的類 - > http://bit.ly/1AvXGGc)內的'FrameLayout'。這是因爲我想追加可變數量的'TextView',具體取決於不同的場景。 –

回答

2

默認情況下,RelativeLayout,如果沒有定義關係,則視圖重疊。

你應該爲你的需求做什麼是在要添加的TextView和已經存在的TextView之間創建一個關係(規則)。

RelativeLayout.LayoutParams stt = (RelativeLayout.LayoutParams) contentTour.getLayoutParams(); 

現在,添加一條規則

stt.addRule(RelativeLayout.BELOW, R.id.tours); 

RelativeLayout.BELOW,以使新的TextView低於你的舊之一。希望這可以幫助。

+0

謝謝!但我得到這個錯誤:http://postimg.org/image/xbqsgpbmt/ –

+0

請檢查編輯:) –

+0

謝謝!以及如何添加marginbottom?它看起來好像我在TextView中添加的邊距不適用 –

相關問題