我正在创建包含在 RelativeLayout 中的任意数量的 TextView。如何以编程方式将 TextView 放置在彼此下方或彼此相邻的位置?
我猜我应该使用 layout_toLeftOf 和 layout_below,但如何使用?
我知道我可以使用 RelativeLayout.LayoutParams,但这似乎只能定位布局而不是单个 TextView。
到目前为止的尝试:
public void updateTS ( ArrayList<String> arrayList ) {
RelativeLayout rl = ( RelativeLayout ) mView.findViewById ( R.id.overview );
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams ( RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT );
for ( int i = 0; i < arrayList.size (); i++ ) {
TextView tv = new TextView ( getActivity () );
tv.setId ( i );
tv.setText ( arrayList.get ( i ).toString () );
if ( i > 0 ) {
lp.addRule ( RelativeLayout.BELOW, i - 1 );
}
rl.addView ( tv );
}
}
最佳答案
您应该在 TextView
上设置一个新的 RelativeLayout.LayoutParams
,而不是 RelativeLayout
:
public void updateTS ( ArrayList<String> arrayList ) {
RelativeLayout rl = ( RelativeLayout ) mView.findViewById ( R.id.overview );
for ( int i = 0; i < arrayList.size (); i++ ) {
TextView tv = new TextView ( getActivity () );
tv.setId ( i );
tv.setText ( arrayList.get ( i ).toString () );
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams ( RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT );
if ( i > 0 ) {
lp.addRule ( RelativeLayout.BELOW, i - 1 );
}
tv.setLayoutParams(lp);
rl.addView ( tv );
}
}
关于android - 以编程方式为 TextView 设置 layout_toLeftOf 和 layout_below,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20005597/