#android #listview #tablelayout
#Android #listview #tablelayout
Вопрос:
Я хочу реализовать макет, который напоминает банковскую сберкнижку. Итак, я подумал, должен ли я реализовать макет таблицы внутри представления списка.
Вот пример примера сберкнижки.
СВЕДЕНИЯ О ДАТЕ ДЕБЕТОВЫЙ КРЕДИТНЫЙ БАЛАНС
06.12.2014 Вывести 200 10000
06.11.2014 Депозит 200 10200
Комментарии:
1. вы можете использовать
LinearLayout
withweight
вместоTableLayout
, в соответствии с вашими требованиями. Это будет работать.2. можете ли вы привести пример фрагмента кода?
3. Я добавил Ans. Проверьте это.
4. Спасибо, приятель.. должен ли я исправить ширину textview, как в некоторых строках, если значение text больше, тогда оно не будет общим для каждой строки.
5. Если вы хотите, чтобы все столбцы имели одинаковую ширину, не фиксируйте ширину, в противном случае вы можете, и не забудьте принять ответ, если он работает для вас.
Ответ №1:
создайте макет xml, как показано ниже
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="horizontal"
android:weightSum="3">
<TextView
android:id="@ id/date"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="@string/hello_world" />
<TextView
android:id="@ id/action_type"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/hello_world"
android:gravity="center"
android:layout_weight="1"/>
<TextView
android:id="@ id/amount"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/hello_world"
android:gravity="center"
android:layout_weight="1"/>
</LinearLayout>
используйте этот макет в качестве элемента списка для вашего ListView
.
Ответ №2:
Используйте ArrayAdapter для вашего ListView.
Там вы можете увеличить макет для элементов списка, будь то TableLayout или что-то другое.
private class MyListAdapter extends ArrayAdapter<SomeObject> {
public MyListAdapter(Context context, int resource, List<SomeObject> someObjectList) {
super(context, resource, someObjectList);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
//view recycling
if (convertView == null) {
// inflate the single row with whatever layout you like
view = getLayoutInflater().inflate(R.layout.table_row, parent, false);
} else {
view = convertView;
}
SomeObject item = getItem(position);
//fill the view with data
TextView date = (TextView) view.findViewById(R.id.date);
date.setText(item.getDate());
...
return view;
}
...
}
Вот немного, чтобы прочитать о ListViews и ArrayAdapter:
https://github.com/thecodepath/android_guides/wiki/Using-an-ArrayAdapter-with-ListView 1 .