0

我需要在議程樣式中顯示一些信息,所以我使用片段在不同的日子顯示信息。每天都有一些專欄來展示房間。在片段中動態添加視圖

我創作的結構,但我有一些問題,當我試圖把信息

agenda_child_tv內 - TextView的地方,我把信息的和平

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/text_child" 
    android:layout_width = "match_parent" 
    android:layout_height = "wrap_content" 
    android:clickable="true" 
    android:background="@drawable/back" 
    android:padding="3sp"/> 

agenda_child_ll - 在科拉姆

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="@dimen/agenda_aula_width" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

<TextView 
    android:id="@+id/agenda_aula_title" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 

    <LinearLayout 
     android:id="@+id/agenda_aula_esp" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 
    </LinearLayout> 

</LinearLayout> 

agenda_day

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

<ScrollView 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" > 

     <LinearLayout 
      android:id="@+id/horizontal_fragment" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 

      <LinearLayout 
       android:layout_width="@dimen/agenda_tv_width" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:background="#BDBDBD" > 

       <TextView 
        android:layout_width="@dimen/agenda_tv_width" 
        android:layout_height="@dimen/agenda_tv_height" 
        android:text="9.00" 
        android:padding="@dimen/agenda_tv_padding" 
        android:textColor="@color/agenda_orario_color" 
        android:textSize="@dimen/agenda_tv_textsize" /> 

       <!-- A lot of textview for the hours --> 

      </LinearLayout> 

      <!-- Here i put, dinamically, the colum for the room in each day --> 

    </LinearLayout> 

</ScrollView> 

</HorizontalScrollView> 

議程

下面的代碼是不是很動態,但我寫了一個簡單versione向你展示我的問題

public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.agenda_day, container, false); 

    LinearLayout dayLL = (LinearLayout) rootView.findViewById(R.id.horizontal_fragment); 

    //Retriving LL agenda_child_ll 
     LinearLayout aula = (LinearLayout) inflater.inflate(R.layout.agenda_child_ll, container, false); 

     //Setting the classroom name 
     TextView aulaName = (TextView) aula.findViewById(R.id.agenda_aula_title); 
     aulaName.setText("room A"); 

     //Retriving LL agenda_aula_esp 
     LinearLayout roomLL = (LinearLayout) aula.findViewById(R.id.agenda_aula_esp); 

     //Retriving TV child 
     TextView child = (TextView) inflater.inflate(R.layout.agenda_child_tv, container, false); 
     child.setText("test"); 

     //Adding child to the room 
     roomLL.addView(child); 

     //adding room to the day 
     dayLL.addView(aula); 

     //Creating the column for the classroom "room B" 

     LinearLayout aula2 = (LinearLayout) inflater.inflate(R.layout.agenda_child_ll, container, false); 

     TextView aulaName2 = (TextView) aula2.findViewById(R.id.agenda_aula_title); 
     aulaName2.setText("room B"); 

     dayLL.addView(aula2); 
} 

這是結果。 textview子項未添加到佈局中。 有人可以幫我嗎? :)

image of the result

+0

我有點覺得你應該試圖使用gridview與適配器,而不是你在做什麼。適配器的目的是非常有效地處理動態數據 – Budius 2013-03-06 09:59:51

+0

謝謝。但我認爲,與gridwith你只能滾動垂直或水平,而不是兩個... 我解決了這個問題,我改變了agenda_aula_title layout_height。 – user2110763 2013-03-07 13:40:25

回答

1

我解決了這個問題,我在agenda_aula_title改變layout_height。

我添加的textview顯示在屏幕外。

0

我正面臨類似的問題,並以同樣的方式解決它。我的應用程序有一個主要活動和兩個片段。第一個片段是一個List Fragment,它顯示了一個公式列表。在單擊任何公式時,顯示公式的表達式的FormulaExpressionFragment將替換FormulaTitlesFragment。我想在FormulaExpressionFragment中爲公式表達式動態添加包含計算器的佈局。這就是我實現它的方式。

public class FormulaExpressionsFragment extends Fragment { 

private TextView mTextView; 
private TextView mFormulaTitle; 
LinearLayout formulaExpressionsLayout; 
View rootView; 
View formulaCalculator; 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     } 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     rootView = inflater.inflate(R.layout.fragment_formula_expressions, container, false); 
     return rootView; 
    } 
void displayFormulaExpression(int position){ 
    mTextView = (TextView) getView().findViewById(R.id.formula_expression_view); 
    mFormulaTitle = (TextView) getView().findViewById(R.id.formula_title_view); 
    mTextView.setText(getResources().getTextArray(R.array.formula_expressions)[position]); 
    mFormulaTitle.setText(getResources().getTextArray(R.array.formula_titles)[position]); 
    mFormulaTitle.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); 
} 

void displayFormulaCalculator(int position){ 
    formulaExpressionsLayout = (LinearLayout) rootView.findViewById(R.id.formula_expression_layout); 
    LayoutInflater inflater = LayoutInflater.from(getActivity().getApplicationContext()); 
    formulaCalculator = inflater.inflate(R.layout.formula_1, formulaExpressionsLayout, false); 
    formulaExpressionsLayout.addView(formulaCalculator); 

fragment_formula_expressions.xml

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/formula_expression_layout" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:orientation="vertical"> 
<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/formula_title_view" 
    android:text="Formula Title" 
    android:padding="5dp" /> 
<TextView 
    android:id="@+id/formula_expression_view" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Formula Expression" 
    android:padding="5dp" /> 

formula_1.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:id="@+id/formula_calculator"> 
<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:hint="@string/mud_density"/> 
<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text=" × 0.052 × "/> 
<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:hint="@string/tvd"/> 

要特別注意

android:layout_width="wrap_content" 
android:layout_height="wrap_content" 

它們應該設置爲「wrap_content」,否則在它們下面添加的視圖將不會顯示在佈局中,因爲頂視圖將佔用所有的顯示高度。