我正在动态地将ListView布局添加到垂直方向的LinearLayout中。然而,当应用程序运行时,所有的数据都在屏幕上压缩在一起。如果我尝试滚动,我发现每个独立的ListView都是可滚动的,并且我每次只看到一行,而不是我的附件中的LinearLayout是可滚动的。
以下是我所拥有的:
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(){
super.onCreate();
setContentView();
printSensors();
}
private void printSensors(){
SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
ListView.LayoutParams layoutParams = new ListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT, ListView.LayoutParams.WRAP_CONTENT);
LinearLayout mainLayout = (LinearLayout)findViewById(R.id.main_layout);
List<Sensor> sensorList = sensorManager.getSensorList(Sensor.TYPE_ALL);
for(Sensor sensor : sensorList){
ListView listView = new ListView(this);
listView.setId(View.generateViewId());
listView.setLayoutParams(layoutParams);
String[] sensorArray = sensor.toString().substring(1, sensor.toString().length()-1).split(",");
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, sensorArray);
listView.setAdapter(arrayAdapter);
mainLayout.addView(listView);
}
}
}activity_main.xml
<ScrollView>
<LinearLayout android:id="@+id/main_layout" android:orientation="vertical">
</LinearLayout>
</ScrollView>但是,如果我将ListView.LayoutParams.WRAP_CONTENT更改为整数,比如500,那么一切都布置得很好,看起来也不错。
那么,是什么原因呢?
发布于 2017-05-10 15:23:04
更改listView的宽度以匹配父内容而不是包装内容,还必须设置高度和宽度以滚动视图。
发布于 2017-05-10 15:53:33
private void printSensors(){
list = (ListView) findViewById(R.id.list);
ArrayList<String> sensorArray = new ArrayList<>();
SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
List<Sensor> sensorList = sensorManager.getSensorList(Sensor.TYPE_ALL);
for(Sensor sensor : sensorList){
sensorArray.add(sensor.toString().substring(1, sensor.toString().length()-1).split(",").toString());
}
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, sensorArray);
list.setAdapter(arrayAdapter);
}发布于 2017-05-10 17:55:08
将LinearLayout包装在另一个LinearLayout中,如下所示:
<ScrollView>
<LinearLayout android:orientation="vertical">
<LinearLayout android:id="@+id/main_layout"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
</ScrollView>https://stackoverflow.com/questions/43896658
复制相似问题