2011-11-02 27 views
1

在我的應用程序中,我需要使用ViewFlipper通過拖動觸摸屏切換屏幕。我有一個包含一些項目的ListView。當選擇一個項目時,我必須顯示一些圖像。問題在於圖像數量因物品不同而不同。所以我認爲我必須以編程方式創建LinearLayout和ImageView。我有可能做什麼?ViewFlipper與可變數量的liniar佈局

在此先感謝..

這裏是我試過的代碼:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent" android:background="#000000" 
    android:id="@+id/layout_main"> 

    <ViewFlipper android:id="@+id/details" 
     android:layout_width="fill_parent" android:layout_height="fill_parent"> 

    </ViewFlipper> 

</LinearLayout> 

和onCreate()方法:

for (int i = 0; i < jArray.length(); i++) { 
      LinearLayout l=new LinearLayout(this); 
      l.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
        LayoutParams.FILL_PARENT)); 
      l.setBackgroundColor(0xFFFFFFFF); 
      l.setOrientation(LinearLayout.VERTICAL); 

      ImageView img = new ImageView(this); 
      img.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
        LayoutParams.FILL_PARENT)); 
      //ImageView img1 = (ImageView) findViewById(R.id.photo1); 
      Drawable image1 = ImageOperations(getBaseContext(), url[i]); 
      img.setImageDrawable(image1); 

      l.addView(img); 
     } 

但沒有任何反應。我只看到一個大黑屏。

+2

你添加的LinearLayout到viewflipper?代碼中未顯示該部分 – blessenm

+0

這是問題所在。謝謝:) – Gabrielle

回答

0

我完全不明白你說什麼,但我曾在ViewFlipper之前。在xml中,我們使用四個線性佈局作爲ViewFlipper的子視圖。 (因爲我首先試圖直接添加列表視圖作爲childviews,但添加linearlayouts會更容易)

並添加列表視圖,imageviews像你說的相應的線性佈局從Java代碼。

它工作。

希望它有幫助。

這裏我的代碼用於XML:

<RelativeLayout android:orientation="vertical" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/tabrelay" 
       android:gravity="center_horizontal" 

       >  

    <ViewFlipper android:id="@+id/details" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     style="@style/FlipperMargins.flipper" 
     >  


    <LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_gravity="center" 
    android:orientation="vertical" 
    android:id="@+id/list1" 
    android:listSelector="@color/sprgreen" 
    android:drawSelectorOnTop="true" 
    android:background="@drawable/deckbackn" 
    style="@style/Webview.view" 

    /> 
    <LinearLayout 
    android:layout_width="@dimen/webViewWidth" 
    android:layout_height="@dimen/webViewHeight" 
    android:layout_gravity="center" 
    android:divider="@color/grey46" 
    android:dividerHeight="1dp" 
    android:id="@+id/list2" 
    android:background="@drawable/white" 
    style="@style/Webview.view" 

    /> 
    <LinearLayout 
    android:layout_width="@dimen/webViewWidth" 
    android:layout_height="@dimen/webViewHeight" 
    android:layout_gravity="center" 
    android:orientation="vertical" 
    android:id="@+id/list3" 
    android:listSelector="@color/sprgreen" 
    android:drawSelectorOnTop="true" 
    android:background="@drawable/commentsbg" 
    style="@style/Webview.view" 

    /> 

    <WebView 
    android:id="@+id/helloWebView" 
    android:layout_width="@dimen/webViewWidth" 
    android:layout_height="@dimen/webViewHeight" 
    android:layout_gravity="center" 
    android:background="@drawable/white" 
    style="@style/Webview.view" 
    /> 
    </ViewFlipper> 
    </RelativeLayout> 

後,你可以從XML獲得linearlayouts的標識,並添加你世襲的列表視圖要等從Java .. ,,

+0

感謝您的重播。我通過將代碼創建的LinearLayout添加到ViewFlipper來解決問題。 – Gabrielle

+1

如果您滿意您的問題,請接受幫助您的正確答案 – Udaykiran