我正在使用以下布局,并希望动态地添加一个在另一个下面的文本视图(取决于我想要显示的数据)
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);
}
}
我是第一次使用Scrollview,因为这有点问题,但主要问题是相对布局中的textviews相互重叠。我如何指定每个视图之间的差距?
答案 0 :(得分:2)
如果要将视图添加到RelativeLayout中,则必须设置视图的放置位置,而不是LinearLayout,只需要在其中添加视图。
尝试更改为
LinearLayout layout= new LinearLayout (getApplicationContext());
layout.setLayoutParams(lp);
在这里你有点小提示。不要这样做
if(i%5==0)
{Log.w("data",temp);
尝试这样做
if(i%5==0){
Log.w("data",temp);
最好阅读和理解
答案 1 :(得分:1)
我没有看到你在哪里定义每个textview的位置,即layout_below,layout_toLeftOf ......如果没有定义位置,相对布局会堆叠左上角的每个视图。
<强>加成强>
似乎是digulino,我同意。我想补充一点,你应该能够在ScrollView中只使用RelativeLayout获得你想要的布局方案,如果你想要使用fling手势支持进行水平滚动,也可以使用HorizontalScrollView。