ViewFlipper с переменным номером линиарного макета - PullRequest
1 голос
/ 02 ноября 2011

В моем приложении мне нужно использовать ViewFlipper для переключения экранов путем перетаскивания на сенсорном экране. У меня есть ListView, который содержит некоторые элементы. Когда элемент выбран, я должен отобразить некоторые изображения. Проблема в том, что количество изображений отличается от одного элемента к другому. Поэтому я думаю, что я должен создать LinearLayout и ImageView программно. Возможно ли, что я пытаюсь сделать?

Заранее спасибо ..

Вот код, который я пробовал:

<?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);
        }

но ничего не происходит. Я вижу только большой черный экран.

1 Ответ

0 голосов
/ 02 ноября 2011

Я точно не понял, что вы говорите, но я работал над ViewFlipper раньше. Там я использую четыре линейных макета в качестве дочерних видов для ViewFlipper, который в XML. (где, во-первых, я попытался добавить listviews прямо как childviews, но добавление linearlayouts сделает это проще)

и добавлены списки, изображения, как вы сказали, для соответствующих линейных разметок из кода 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 и добавить любой желаемый вид списка и т. Д. Из java .. ,,

...