2016-04-30 9 views
0

Ich möchte zwei untergeordnete Ansichten zu einer horizontalen Bildlaufansicht hinzufügen. Die beiden Ansichten sind eine ImageView und eine TextView und die TextView sollte unterhalb der `ImageView, sowohl die Ansicht sollte horizontal scrollen Ist es möglich, dies zu erreichen? Wie kann es hinzugefügt werden? Ich bin neu bei Android.horizontalscrollview mit Bild und Text ist möglich, um zwei Ansichten hinzuzufügen

Vielen Dank im Voraus.

in meinem Fragment:

LinearLayout lv = (LinearLayout) v.findViewById(R.id.textl); 
     for (int i=0;i<5;i++){ 
      ImageView iv = new ImageView(getContext()); 
      TextView tv = new TextView(getContext()); 
      tv.setText(text[i]); //defined text and images 
      iv.setImageResource(images[i]); 
      lv.addView(iv); 
      lv.addView(tv); 

xml:

<HorizontalScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginTop="10dp" 
     android:id="@+id/hs"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/bottle" 
      android:orientation="horizontal"> 

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

     </LinearLayout> 

    </HorizontalScrollView> 

Antwort

1

Sie Linearlayout mit vertikaler Ausrichtung innen horizontale Scroll-Ansicht verwenden Sie dann Bild und Textansicht innerhalb Linearlayout verwenden sollten.

<HorizontalScrollView 
xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/hsv" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    > 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 

    android:orientation="vertical" > 
    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/to" /> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/subject" /> 


</LinearLayout> 
</HorizontalScrollView> 
+0

Ok definieren werde ich versuchen, Vielen Dank für Ihre Antwort – sun

+0

, wenn ich das Hinzufügen bin Bild und Text, den ich eine Fehlermeldung anzeigt hat Das angegebene Kind hat bereits einen Elternteil. Sie müssen zuerst removeView() für das übergeordnete Element des Kindes aufrufen. – sun

+0

Bitte teilen Sie Ihre Java-Datei. –

0

Alle drei Fragen Antworten:

Textview unten Bildansicht, wie unten gezeigt,

Ja, ist es möglich,

Yo unter XML-Code überprüfen

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

    <HorizontalScrollView 
     android:id="@+id/hsv" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:fillViewport="true" 
     android:measureAllChildren="false" 
     android:scrollbars="none"> 

     <LinearLayout 
      android:id="@+id/innerLay" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center_vertical" 
      android:orientation="horizontal"> 

      <ImageView 
       android:id="@+id/iV1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/next_"/> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:layout_below="@+id/iV1" 
       android:gravity="center" 
       android:hint="hello"/> 
     </LinearLayout> 
    </HorizontalScrollView> 
</RelativeLayout> 
+0

Ich denke, wenn wir so hinzufügen, denke ich, es wird Fehler - Das angegebene Kind hat bereits einen Elternteil. Sie müssen removeView() zuerst beim übergeordneten Element des Kindes aufrufen, wenn Sie Text und Bild zu diesem hinzufügen. – sun

+0

Nein, es wird kein Fehler ausgegeben, bitte überprüfen Sie http://stackoverflow.com/questions/18656949/how-to-implement-horizontalscrollview- like-gallery –

+0

yeah Ich füge Bild und Text sowohl in imageview als auch in textview dynamisch hinzu, aber es wird immer wieder angezeigt. Das angegebene Kind hat bereits einen Elternteil. Sie müssen zuerst removeView() für das übergeordnete Element des Kindes aufrufen. – sun

0

Try This:

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

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

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical"> 

      <ImageView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:padding="2dp" 
       android:text="Hello" /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="3dp" 
       android:padding="2dp" 
       android:text="Hello" 
       android:textSize="20sp" /> 

     </LinearLayout> 
    </HorizontalScrollView> 
</LinearLayout> 
1

Die beste Art und Weise ist RecyclerView zu verwenden. Dies ist der beste Weg, um es selbst zu skalieren und auch Elemente können im laufenden Betrieb geladen werden. , wenn Sie in Aktivität sind dann in onCreate Methode

// recyclerView is id mentioned in xml file 
RecyclerView mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView); 

LinearLayoutManager mLayoutManager = new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL, false); 

mRecyclerView.setLayoutManager(mLayoutManager); 

** your adapter init goes here ** 
mRecyclerView.setAdapter(**adapter object**); 

für Details Code schreiben - wird Ihnen helfen. Für Fragmente müssen Sie mit geringfügigen Änderungen

Hinweis gleich tun: Sie sollten auch Ihre recyclerview in der XML-Datei