2012-04-21 4 views
0

Я использую следующую раскладку и хотим добавить TextViews один под другим динамически (в зависимости от данных, я хочу, чтобы отобразить)добавляющих просмотры динамически

main.xml 

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <LinearLayout 
     android:id="@+id/contain" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 




    </LinearLayout> 


</ScrollView> 

Так что я попробовал этот

public class Feeds extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Intent intent=getIntent(); 
     Bundle b=intent.getExtras(); 
     String s= b.getString("datapack"); 

     Log.w("String",s); 
     String data[]=s.split("#"); 




String temp=""; 
     LinearLayout l=(LinearLayout)findViewById(R.id.contain); 
     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
       (LayoutParams.WRAP_CONTENT), (LayoutParams.WRAP_CONTENT)); 

     RelativeLayout relative = new RelativeLayout(getApplicationContext()); 
     relative.setLayoutParams(lp); 


     for(int i=1;i<data.length;i++) 
     {Log.w("i data",data[i]); 
      temp=temp + data[i] + ","; 
      Log.w("tag",temp); 
      if(i%5==0) 
      {Log.w("data",temp); 
       TextView tv = new TextView(getApplicationContext()); 
       tv.setLayoutParams(lp); 
       tv.setId(i); 
       tv.setText(temp); 
       relative.addView(tv, lp); 
       temp=null; 

      } 

     } 
     l.addView(relative); 




    } 
} 

I Я использую Scrollview в первый раз, так что это немного сложная задача, но главная проблема заключается в том, что текстовые изображения в относительной компоновке перекрываются друг с другом. Как я могу указать пробел между каждым представлением?

Overlapping

ответ

1

Я не вижу, где вы определяете позиции для каждого TextView, т.е. layout_below, layout_toLeftOf ... Если никакие позиции не определены, относительный макет складывает каждый вид в верхнем левом углу.

Добавление

кажется digulino и я согласен. Я хотел бы добавить, что вы должны иметь возможность получить схему компоновки, которая вам нужна, только с RelativeLayout внутри ScrollView, возможно, с HorizontalScrollView, если вы хотите горизонтальную прокрутку с поддержкой жестов fling.

+0

То, что я хочу знать. – Sankalp

+0

Используйте функцию addRule для [layoutParams.] (Http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html) – Sam

1

Если вы добавляете мнения в RelativeLayout вы должны установить, где вид будет размещен, отличается от LinearLayout, что вам нужно только добавить точку внутри там.

Trye изменить к этому

LinearLayout layout= new LinearLayout (getApplicationContext()); 
    layout.setLayoutParams(lp); 

И здесь вы идете немного чаевых. Не делайте этого

if(i%5==0) 
{Log.w("data",temp); 

попробовать сделать это

if(i%5==0){ 
    Log.w("data",temp); 

это лучше читать и понимать

+0

Также рекомендуется установить layout_gravity для LinearLayout, чтобы представления не перекрывались ... –

Смежные вопросы