Java ScrollView高度未包装到代码中的父活动

Java ScrollView高度未包装到代码中的父活动,java,android,Java,Android,我有一个关于我的android代码的滚动视图布局的小问题 import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.graphics.Color; import android.view.Menu; import android.view.ViewGroup.LayoutP

我有一个关于我的android代码的滚动视图布局的小问题

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Color;
import android.view.Menu;
import android.view.ViewGroup.LayoutParams;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.ScrollView;

public class ScheduleList extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().getDecorView().setBackgroundColor(Color.BLACK);
    setTheme(R.style.DefaultForm);
    ScrollView sv = new ScrollView(this);
    ListView lv = new ListView(this);
    String data[] = { "Android", "iPhone", "BlackBerry", "AndroidPeople" };
    ArrayAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, data);
    lv.setAdapter(adapter);
    sv.addView(lv);
    sv.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    setContentView(sv);
}
}
导入android.os.Bundle;
导入android.app.Activity;
导入android.app.AlertDialog;
导入android.content.DialogInterface;
导入android.graphics.Color;
导入android.view.Menu;
导入android.view.ViewGroup.LayoutParams;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.ScrollView;
公共类ScheduleList扩展活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
getWindow().getDecorView().setBackgroundColor(Color.BLACK);
setTheme(R.style.DefaultForm);
ScrollView sv=新的ScrollView(此);
ListView lv=新的ListView(本);
字符串数据[]={“Android”、“iPhone”、“BlackBerry”、“AndroidPeople”};
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,数据);
低压设置适配器(适配器);
sv.addView(lv);
sv.setLayoutParams(新的LayoutParams(LayoutParams.MATCH_父级,LayoutParams.MATCH_父级));
setContentView(sv);
}
}
这就是我得到的

如何调整此滚动视图的大小以匹配活动表单的高度,我确实更改了setLayoutParams上的LayoutParams.FILL\u父项和LayoutParams.WRAP\u内容,但它不起作用。

执行:

 sv.addView(lv);
 sv.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
onCreate()
构造函数之外 因为视图尚未完成创建,并且视图不知道元素的大小


例如,如果您尝试打印
sv.getWidth()
,则该方法将在构造函数中或在
onCreate()中返回0,但如果调用在外部,则返回正确的大小

嗨,关于代码实现的问题属于StackOverflow。管理员将迁移它,所以请不要在那里重复发布。我尝试调用代码从onResume()、onStart()、onPostResume()或任何POSIBLE事件调整它的大小,但异常失败。有什么建议吗?您不能将其调用到onResume()或其他相同类型的方法中,因为该视图尚未创建!如果不在视图初始化之外调用,则没有解决方案。想想别的办法吧!:)