我想在我的第一个活动的onCreate()方法中创建一个horizontalscrollview,因为我想进行大量的textview滚动。这是我到目前为止的内容:
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.ViewGroup.LayoutParams;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends Activity {
LinearLayout linscrollview;
HorizontalScrollView scrollview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scrollview = (HorizontalScrollView) findViewById(R.id.scrollview_layout);
linscrollview = new LinearLayout(this);
for(int i=0; i<5; i++) {
TextView tv = new TextView(this);
tv.setWidth(LayoutParams.WRAP_CONTENT);
tv.setHeight(LayoutParams.WRAP_CONTENT);
tv.setText("" + i);
tv.setTextSize(20);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
params.setMargins(10, 0, 10, 0);
tv.setLayoutParams(params);
tv.setId(i);
linscrollview.addView(tv);
}
scrollview.addView(linscrollview);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
我没有收到任何错误,但是没有textviews显示出来。
最佳答案
您的问题可能与setWidth和setHeight方法有关。它们按照文档中的说明设置TextView宽度和高度的精确值(以像素为单位):
使TextView恰好有这么多像素宽。你可以做
通过在LayoutParams中指定此数字也可以实现相同目的。
http://developer.android.com/reference/android/widget/TextView.html#setWidth(int)
您想要做的是为TextView设置LayoutParams,因为您已经将代码稍微移了一些。因此,只需摆脱这两个方法调用,它就可以工作。