2017-04-06 69 views
0

如何以編程方式添加視圖到現有的視圖,例如我在XML TextView的,現在我需要補充的是TextView的編程下面ImageView的,這裏是我試過,下面添加現有的TextView一個ImageView的編程

 HorizontalScrollView scroll = new HorizontalScrollView(getApplicationContext()); 
    LinearLayout imageLayout = new LinearLayout(getApplicationContext()); 
    scroll.setLayoutParams(new ViewGroup.LayoutParams(imageLayout.getWidth(), 
      imageLayout.getHeight())); 
    scroll.addView(imageLayout); 

    for (int i = 0; i < 15; i++) { 

     final ImageView imageView = new ImageView(this); 
     imageView.setTag(i); 
     imageView.setImageResource(R.drawable.logo); 

     imageLayout.addView(imageView); 


     imageView.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Log.e("Tag", "" + imageView.getTag()); 
      } 
     }); 
    }but its not adding any imageview, I'm trying to do this in **AlertDialog** 
+2

你的Horizo​​ntalScrollView添加到現有的View^h ierarchy?從片段中,我可以看到你已經創建了一個Horizo​​ntalScrollView滾動並添加了一個imageView。 – Praga

回答

-1
ImageView imageView = new ImageView(this.getActivity()); 
imageView.setId(View.generateViewId()); 
params.addRule(RelativeLayout.BELOW, imageView.getId()); 
+0

雖然這段代碼可能回答這個問題,但提供關於_how_和/或_why_的附加[上下文](https://meta.stackexchange.com/q/114762)可以解決問題,這樣可以提高答案的長期價值。請記住,你正在爲將來的讀者回答這個問題,而不僅僅是現在問的人!請[編輯](http://stackoverflow.com/posts/43250693/edit)您的答案添加一個解釋,並指出適用的限制和假設。它也不會提到爲什麼這個答案比其他答案更合適。 –

0

ScrollView不能有一個以上的孩子。您應該將您的佈局封裝在LinearLayout之內,然後在將任意數量的視圖添加到該LinearLayout之後。歡呼:)

+0

他們究竟在哪裏添加了多個'View'到'Horizo​​ntalScrollView'? –

0

你正在做錯誤的方式。 一旦檢查下面的代碼片段。

LinearLayout yourlayout = (LinearLayout)findViewById(R.id.layoutid);//Layout which is inside scrollview 

    LinearLayout imageLayout = new LinearLayout(getApplicationContext()); 

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
      LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

    // add the rule that places your LinearLayout below your TextView object 
    params.addRule(RelativeLayout.BELOW, TextView.getId()); 

    // set the layoutParams on the LinearLayout 
    imageLayout.setLayoutParams(params); 


    yourlayout.addView(imageLayout); 

    for (int i = 0; i < 15; i++) { 

     final ImageView imageView = new ImageView(this); 
     imageView.setTag(i); 
     imageView.setImageResource(R.drawable.logo); 

     imageLayout.addView(imageView); 


     imageView.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Log.e("Tag", "" + imageView.getTag()); 
      } 
     }); 
    } 
0

我解決它在XML添加

<HorizontalScrollView 
android:id="@+id/horizontal_scroll" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" > 

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

</HorizontalScrollView> 

&

LinearLayout layout = (LinearLayout) findViewById(R.id.linear); 
for (int i = 0; i < 10; i++) { 
    ImageView imageView = new ImageView(this); 
    imageView.setId(i); 
    imageView.setPadding(2, 2, 2, 2); 
    imageView.setImageBitmap(BitmapFactory.decodeResource(
      getResources(), R.drawable.ic_launcher)); 
    imageView.setScaleType(ScaleType.FIT_XY); 
    layout.addView(imageView); 
} 
在MainActivity.java

相關問題