Мне трудно получить представление, которое я раздуваю, чтобы соответствовать ширине родителя. Компоновка я использую на setContentView деятельности содержит следующиеLayoutInflater вид не растягивается до match_parent
<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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"
android:scrollbars="none" >
<TableLayout
android:id="@+id/tableRequestContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</TableLayout>
</ScrollView>
макет Я надувать выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layoutRequestItemContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/Blue">
<TextView
android:id="@+id/RequestItemUnit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:paddingLeft="10dp" />
<TextView
android:id="@+id/lblRequestItemCost"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textSize="16sp" />
</LinearLayout>
Тогда в моей деятельности, I цикла над ArrayList, который содержит мои данные и раздувает представление каждой итерации, создайте новый TableRow, добавьте представление в TableRow и добавьте TableRow в родительскую таблицу. Код я использую ниже:
public class Requests extends Activity {
View view;
LayoutInflater inflater;
RequestData requestData;
TableLayout requestTable
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.request_layout);
requestTable = (TableLayout) findViewById(R.id.tableRequestContainer);
// HERE I POPULATE THE DATA OBJECT requestData with values
requestData = getRequestData();
for (int x=0; x<requestData.size(); x++) {
TableRow tr = new TableRow(this);
tr.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT));
view = LayoutInflater.from(this).inflate(R.layout.request_item_layout, tr, false);
// HERE IS THEN FIND THE TEXTVIEWS using view.findViewById(R...) and setText on each to the value in my data object. This works fine
// Add the view to the table row
tr.addView(view);
// Add the tablerow to the table
requestTable.addView(tr);
}
}
}
Проблема заключается вид раздувает правильно, и я могу установить значение TextViews, однако контейнер использует wrap_content для ширины вместо match_parent, как я указал в XML. Я понятия не имею, почему и пытаюсь все, о чем я могу думать, и все еще не могу получить завышенное представление, чтобы растянуть ширину до match_parent. Целью является то, что я надуваю, должна быть полная ширина экрана пользователя.
Любая помощь очень ценится! Спасибо!!!
не вы должны использовать TableRow.LayoutParams? – pskink
@pskink - я попытался использовать tr.setLayoutParams (новые TableRow.LayoutParams (TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT)); но результат тот же – Phil