我使用scrollview+linearlayout
创建了一个列表。我在customviews
内创建了linear layout
,这是我的代码:
list.xml:
<ScrollView
android:layout_height="wrap_content"
android:layout_width="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:id="@+id/scroll_container"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
在我的活动中:
int length = array.length();
for (int i = 0; i < length; i++) {
JSONObject objLoop = array.getJSONObject(i);
String driverid = objLoop.getString("driverid");
String name = objLoop.getString("name");
String dlnum = objLoop.getString("dlnum");
String contact = objLoop.getString("contact");
//INITIALIZE TABLE LAYOUT
TableLayout tableLayout = new TableLayout(getBaseContext());
TableLayout.LayoutParams tableparams = new TableLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
//row layout params
TableRow.LayoutParams paramsRow = new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
paramsRow.setMargins(5, 5, 5, 5);
tableparams.setMargins(10, 10, 10, 10);
tableLayout.setLayoutParams(tableparams);
//first row
TableRow row1 = new TableRow(getBaseContext());
row1.setPadding(5, 5, 5, 5);
row1.setLayoutParams(paramsRow);
row1.setBackgroundResource(R.drawable.edit_border);
TextView textDriverName, firstIndex;
textDriverName = new TextView(getBaseContext());
firstIndex = new TextView(getActivity());
ViewGroup.LayoutParams paramsTextView = new TableRow.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT, 1f);
textDriverName.setLayoutParams(paramsTextView);
firstIndex.setLayoutParams(paramsTextView);
textDriverName.setText(name);
firstIndex.setText("Driver Name");
row1.addView(firstIndex);
row1.addView(textDriverName);
tableLayout.addView(row1);
scrollcontainer.addView(tableLayout);
}
这段代码完美无缺。它正在创建listview之类的列表。 另一种方法是:
list.xml:
<Listview
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/myid" />
活动:
ListView list = (ListView) findViewById(R.id.mylist);
list.setAdapter(myadapter);
我的问题是:
哪一个更好?
第一种方法或第二种方法
我无法决定应该使用哪一个。请原谅我的弱语法。
提前致谢
答案 0 :(得分:1)
Scrollview非常适合需要滚动的屏幕,但滚动视图用于渲染较大的数据集时效率不高。相反,您可以使用专门的适配器视图,如ListView,GridView和Recycler View(在Android Lollipop中引入)作为长列表。
ListView是一个Android ViewGroup,广泛用于显示垂直可滚动行中的数据集合。列表项会自动插入到列表中,使用适配器和适配器从数据源源(如数组,光标等)中提取数据。
查看以下示例,这可能有所帮助。
答案 1 :(得分:1)
简单回答,使用列表视图进行线性布局。
如果您拥有大量数据,它们的效果最佳。
答案 2 :(得分:1)
ListView可以扩展以处理大量的列表项(通常是类似的项目)。这意味着如果你有少量的项目,ScrollView和ListView没有太大差别。但是,当您的应用使用 ViewHolder 模式处理大量数据时,ListView是性能的更好选择。 请详细了解scrollview vs listview here和here。
答案 3 :(得分:1)
根据我的观点,使用Native小部件比你的方法更好。我有理由这样做。 理由:
在你的方法中:
另一方面,本机小部件的好处:
所以我们可以说Native Native更好。 :)