我正在動態地將ListView
佈局添加到我的垂直面向LinearLayout
。但是,當應用程序運行時,所有數據都會一起擠在屏幕上。如果我嘗試滾動,我發現每個獨立的ListView
都是可滾動的,並且我只看到一行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
,然後一切奠定了很好,看起來不錯。
那麼,什麼給了?您的ListView
ListViews **的寬度被設置爲「MATCH_PARENT」。另外,你是什麼意思「還必須設置高度和寬度滾動視圖」? – Brian
你能解釋爲什麼你動態地添加列表視圖,而不是在你的佈局中設置它?如果你在主佈局中添加listView並將適配器設置爲它,我認爲它可能效果不錯 –
我正在爲每個傳感器類型添加一個'ListView'。由於我不知道運行應用程序之前傳感器的數量(由於每個設備不同),我需要動態添加它們。 – Brian