2013-10-16 70 views
3
****Main.xml**** 

這是我的main.xml佈局,我想在scrollview的線性佈局內膨脹另一個佈局。所以請有人建議我如何膨脹滾動視圖內的另一個佈局。如何膨脹滾動視圖內的另一個xml佈局

<LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     android:id="@+id/productDetailsLayout" 

     > 
      <LinearLayout 
       android:id="@+id/productDetailsLayout1" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 

       > 
       <TextView android:layout_width="fill_parent" 
       android:layout_height="wrap_content" /> 

       </LinearLayout> 
      <LinearLayout 
       android:id="@+id/productDetailsLayout1" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 

       >   
     <ScrollView android:id="@+id/scview" 
      android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 

       > 
     <LinearLayout 
       android:id="@+id/productDetailsLayout1" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 

       > 


       </LinearLayout> 

    </ScrollView> 
    </LinearLayout> 
    </LinearLayout> 

請看另一個佈局dynamic_lyaout.xml。

當我膨脹的XML然後發生異常。所以請別人幫

dynamic_layout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/abc" 
       > 

       <ImageView 
        android:id="@+id/icon" 
        android:layout_width="80dp" 
        android:layout_height="80dp" 

        android:paddingLeft="10dp" 
        android:paddingRight="10dp" /> 

       <TextView 
        android:id="@+id/title" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_toRightOf="@+id/icon" 
        android:paddingBottom="10dp" 
        android:paddingLeft="5dp" 
        android:text="Title" 
        android:textColor="#CC0033" 
        android:textSize="16dp" /> 
       <TextView 
        android:id="@+id/price" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_toRightOf="@+id/icon" 
        android:layout_below="@+id/title" 

        android:paddingBottom="10dp" 
        android:paddingLeft="5dp" 

        android:text="Price:" 
        android:textColor="#Cd0023" 
        android:textSize="16dp" /> 

       <TextView 
        android:id="@+id/desc" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_below="@+id/price" 
        android:layout_toRightOf="@+id/icon" 
        android:paddingLeft="5dp" 
        android:text="Description" 
        android:textColor="#3399FF" 
        android:textSize="14dp" /> 
        <View 
         android:layout_width="fill_parent" 
         android:layout_height="1dp" 
         android:background="#880808" 
         android:layout_below="@+id/desc"/>   

      </RelativeLayout> 

請我下面

LinearLayout mainlayou = (LinearLayout)findViewById(R.id.productDetailsLayout); 
    ScrollView scview=(ScrollView)mainlayou.findViewById(R.id.scview); 
    LinearLayout scviewLayout1 = (LinearLayout)scview.findViewById(R.id.productDetailsLayout1); 
    for(int i=0; i<5; i++){ 
    LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    scviewLayout1.addView(inflater.inflate(R.layout.dynamic_layout, 
      mainlayou, false)); 
} 
+0

這裏有什麼問題?你正在做的 –

+0

第一次設置您的所有linearlayout的唯一ID,然後嘗試我的代碼。 – Riser

回答

3

試試下面的代碼:

inflator_layout.xml

<?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="vertical" > 

<LinearLayout 
       android:id="@+id/llDIsplayForToDoInflater" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:background="@color/aliceblue" 
       android:gravity="center" > 

       <TextView 
        android:id="@+id/txtdt" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textSize="20sp" > 
       </TextView> 
</LinearLayout> 
</LinearLayout> 

Java文件:

LinearLayout llDisplayData, llChangeBG; 
TextView tvtxt; 

llDisplayData = (LinearLayout) findViewById(R.id.productDetailsLayout1); 
LayoutInflater linflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View customView; 

llDisplayData.removeAllViews(); 

customView = linflater.inflate(R.layout.inflator_layout, null); 

llChangeBG = (LinearLayout) customView.findViewById(R.id.llDIsplayForToDoInflater); 

tvtxt = (TextView) customView.findViewById(R.id.txtdt); 
llDisplayData.addView(customView); 
+0

我想在scrollview內實際膨脹?請參閱我的xml代碼。 – Pramod

+1

@Pramod我知道。我使用scrollview的linearlayout ..只是看到我的代碼。並實施它。之後,如果您遇到任何問題,請告訴我。 – Riser

+0

我實現你的代碼在工作,但一個問題所有佈局顯示水平不垂直..請給出建議 – Pramod

0

代碼試試這個,在您滾動查看你會得到你包括佈局添加該代碼。

<ScrollView android:id="@+id/scview" 
     android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      > 
    <LinearLayout 
      android:id="@+id/productDetailsLayout1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      > 
    <include 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    layout="@layout/your_layour" /> 
    </LinearLayout> 

</ScrollView> 
+0

親愛的我想通過編碼膨脹?請參閱上面的代碼 – Pramod

0
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

        v = inflater.inflate(R.layout.dynamic_layout, productDetailsLayout1, false); 
        //content.addView(v); 
        LinearLayout scrolloyouts=(LinearLayout)findViewById(R.id.productDetailsLayout1); 

        LinearLayout loginlayout=(LinearLayout)v.findViewById(R.id.abc); 
        scrolloyouts.removeAllViews(); 
        scrolloyouts.addView(abc);