我正在尝试根据服务器上文本文件的内容动态地将表格,行,图像和文本视图添加到视图中。一切顺利,除了文本只填满了一半页面。
这是我的代码:
private void setMainView(String section, String selection){
mTableView = (TableLayout) findViewById(R.id.tableLayout1);
mTableView.removeAllViews();
ArrayList<String> info = getInfoArray(section, selection);
String[] instructions = info.get(0).split("\\|");
String[] values = info.get(1).split("\\|");
for(int i=1; i < instructions.length; i++){
if (instructions[i].equals("@image")){
TableRow newRow = new TableRow(this);
ImageView newImage = new ImageView(this);
LayoutParams params = (LayoutParams) newImage.getLayoutParams();
params.width = 120;
params.height = 120;
// existing height is ok as is, no need to edit it
newImage.setLayoutParams(params);
newRow.addView(newImage);
mTableView.addView(newRow);
}else{
TableRow newRow = new TableRow(this);
TextView newText = new TextView(this);
newText.setText(instructions[i] + ": " + values[i]);
newText.setTextColor(Color.WHITE);
newRow.addView(newText);
mTableView.addView(newRow);
}
}
TableRow newRow = new TableRow(this);
newRow.setLayoutParams(new TableLayout.LayoutParams(
TableLayout.LayoutParams.MATCH_PARENT,
TableLayout.LayoutParams.MATCH_PARENT, 1.0f));
TextView newText = new TextView(this);
newText.setText(info.get(2));
newText.setTextColor(Color.WHITE);
newText.setSingleLine(false);
newText.setWidth(LayoutParams.MATCH_PARENT);
newText.setMaxLines(100);
newRow.addView(newText);
mTableView.setPadding(70, 20, 70, 0);
mTableView.addView(newRow);
}
这是我的xml:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tableLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</TableLayout>
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#111"/>
</android.support.v4.widget.DrawerLayout>
这就是我得到的:
我想要它做的是填充屏幕几乎以拉丁填充文本结束,而不是只填充屏幕的一半。我哪里出错了?
答案 0 :(得分:1)
这是你的错误:
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" /> <------------ HERE!!!!!
您希望以下textview成为FrameLayout的INSIDE!像这样:
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TableLayout
android:id="@+id/tableLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</FrameLayout>
试试这个:
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/scroll_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
</ScrollView>
</FrameLayout>
您将TextViews添加到scroll_layout。
答案 1 :(得分:0)
你可以试试这个......
TableLayout.LayoutParams.MATCH_PARENT,
TableLayout.LayoutParams.WRAP_CONTENT