android:stretchColumns=”0″

其中 android:stretchColumns=”0″ 作用是让第一列可以扩展到所有可用空间;下面我们讲一下TableLayout几个重要的属性:

collapseColumns – 设置隐藏那些列,列ID从0开始,多个列的话用”,”分隔
stretchColumns – 设置自动伸展那些列,列ID从0开始,多个列的话用”,”分隔
shrinkColumns -设置自动收缩那些列,列ID从0开始,多个列的话用”,”分隔

可以用”*”来表示所有列,同一列可以同时设置为shrinkable和stretchable。

<?xml version="1.0" encoding="utf-8"?> <androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TableLayout android:id="@+id/orderTable" android:layout_width="match_parent" android:layout_height="wrap_content" android:stretchColumns="*" android:shrinkColumns="*"> <!-- 表格标题行 --> <TableRow android:background="?attr/colorPrimary" android:padding="8dp"> <TextView android:text="订单号" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="产品编号" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="产品数量" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="组件名" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="板材信息" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="板材/组件" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="订购数量" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> </TableRow> </TableLayout> </androidx.core.widget.NestedScrollView> 填入信息后会变形,要求不能变型可以左右滑动,添加一个操作按钮
06-08
【文件2-7】 activity_main.xml 1 <TableLayout xmlns:android-"http://schemas.android.com/apk/res/android" 2 3 android:layout width="match parent" 4 android:layout height="match parent" 5 android:stretchColumns="*"> 6 <TableRow 7 android:id="@+id/tr_one" 8 style="@style/rowstyle" 9 android:layout_marginTop-"200dp"> 10 <Button 11 style="@style/btnstyle" 12 android:text-"c"/> 13 <Button 14 style="@style/btnstyle" 15 android:text="-"/> 16 <Button 17 style="@style/btnstyle" 18 android:text="+"/> 19 <Button 20 style="@style/btnstyle" 21 android:text-"-"/> 22 </TableRow> 23 <TableRow android:id="@+id/tr_two" 24 25 style="@style/rowstyle"> 26 <Button 27 style="@style/btnstyle" 28 android:text="7"/> <Button style="@style/btnstyle" 31 android:text-"8"/> 32 <Button 33 style="@style/btnstyle" android:text-"9"/> 34 35 <Button 36 style="@style/btnstyle" 37 android:text="x"/> 38 </TableRow> 39 <TableRow 40 android:id="@+id/tr_three" 41 style="@style/rowStyle"> 42 <Button 43 style="@style/btnstyle" 44 android:text-"6"/> 45 <Button 46 style="@style/btnstyle" 47 android:text-"5"/> 48 <Button 49 style="@style/btnstyle" 50 android:text-"4"/> 51 <Button 52 style="@style/btnstyle" 53 android:text="/"/> 54 </TableRow> 55 <TableRow 56 android:id="@+id/tr_four" 57 style="@style/rowStyle"> 58 <Button style="@style/btnstyle" android:text-"1"/> 61 <Button 62 style="@style/btnstyle" 63 android:text="2"/> 64 <Button 65 style="@style/btnstyle" 66 android:text-"3"/> 67 <Button 68 style="@style/btnstyle" 69 android:text-"."/> 70 </TableRow> 71 <TableRow 72 android:id-"@+id/tr_five" 73 style="@style/rowstyle"> 74 <Button 75 style="@style/btnstyle" 76 android:layout_span="2" 77 android:text="0"/> 78 <Button 79 style="@style/btnstyle" 80 android:layout _span-"2" 81 android:text-"-"/> </TableRow> 82</TableLayout>写个类似的计算机代码
03-17
实验四的界面是图书查询界面Ss.java类代码: import android.content.Intent; import android.os.Bundle; import android.view.ContextMenu; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class Ss extends AppCompatActivity { private EditText editId; private EditText editName; private EditText editAuthor; private static final int item1 = Menu.FIRST; private static final int item2 = Menu.FIRST + 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ss); // 初始化 EditText editId = findViewById(R.id.edit_id); editName = findViewById(R.id.edit_name); editAuthor = findViewById(R.id.edit_author);//通过ID绑定视图对象 LinearLayout ll = findViewById(R.id.table_layout); registerForContextMenu(ll); // 1清空 - 属性事件响应(XML 按钮需添加 android:onClick="clearByAttribute") // 2清空 - 内部匿名类事件响应 findViewById(R.id.ff_id1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { clearFields(); } }); // 3清空 - 监听器接口实现类事件响应 findViewById(R.id.ff_id2).setOnClickListener(new MyClickListener()); // 4清空 - 外部监听器接口实现类事件响应 findViewById(R.id.ff_id3).setOnClickListener(new ExternalClickListener(this)); Button btnBack = findViewById(R.id.btn_back); btnBack.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Ss.this, Sy.class); startActivity(intent); finish(); } }); } // 1清空对应的属性事件响应方法 public void clearByAttribute(View view) { clearFields(); }//当用户点击按钮就会被执行 // 清空文本框的公共方法 public void clearFields() { if (editId != null) editId.setText(""); if (editName != null) editName.setText(""); if (editAuthor != null) editAuthor.setText(""); } // 内部监听器接口实现类(3清空) private class MyClickListener implements View.OnClickListener { @Override public void onClick(View v) { clearFields(); } } // 外部监听器接口实现类(4清空) @Override public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo info) { menu.add(0, 1, 0, "删除"); menu.add(0, 2, 0, "修改"); super.onCreateContextMenu(menu, view, info); } @Override public boolean onContextItemSelected(MenuItem item) { if (item.getItemId() == 1) { Toast.makeText(this, "您点击了删除", Toast.LENGTH_LONG).show(); } else if (item.getItemId() == 2) { Toast.makeText(this, "您点击了修改", Toast.LENGTH_LONG).show(); } return true; } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, item1, 0, "关于"); menu.add(0, item2, 0, "退出"); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case item1: Toast.makeText(Ss.this, "姓名:骆树涛。学号:2404224132", Toast.LENGTH_SHORT).show(); break; case item2: this.finish(); break; } return true; } } 图书查询界面的ss.XML布局文件代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="图书编号" android:textSize="20dp"/> <EditText android:id="@+id/edit_id" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="图书名称" android:textSize="20dp"/> <EditText android:id="@+id/edit_name" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="图书作者" android:textSize="20dp"/> <EditText android:id="@+id/edit_author" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout> <RadioGroup android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="中文" android:textSize="20dp"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="外文" android:textSize="20dp"/> </RadioGroup> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="查询" android:textSize="20dp"/> <Button android:id="@+id/btn_clar" android:layout_width="wrap_content" android:layout_height="match_parent" android:text="清空" android:textSize="20dp" android:onClick="clearByAttribute"/> <Button android:id="@+id/btn_back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="返回" android:textSize="20dp"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center"> <Button android:id="@+id/ff_id1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="清空" android:textSize="20dp"/> <Button android:id="@+id/ff_id2" android:layout_width="wrap_content" android:layout_height="match_parent" android:text="清空" android:textSize="20dp" /> <Button android:id="@+id/ff_id3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="清空" android:textSize="20dp"/> </LinearLayout> <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:stretchColumns="*"> <TableRow> <TextView android:text="图书编号" android:textSize="15dp"/> <TextView android:text="图书名称" android:textSize="15dp"/> <TextView android:text="图书作者" android:textSize="15dp"/> <TextView android:text="馆藏地点" android:textSize="15dp"/> </TableRow> <TableRow android:id="@+id/table_layout"> <TextView android:text="1001" android:textSize="15dp"/> <TextView android:text="Android" android:textSize="15dp"/> <TextView android:text="张三" android:textSize="15dp"/> <TextView android:text="5-423" android:textSize="15dp"/> </TableRow> <TableRow> <TextView android:text="查询结果1条" android:textSize="15dp" android:layout_span="4" android:layout_gravity="center"/> </TableRow> </TableLayout> </LinearLayout> 实验五的有首页界面、图书新增界面、图书详情界面。代码如下 首页Sy.JAVA类代码 import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class Sy extends AppCompatActivity { private static final int item1 = Menu.FIRST; private static final int item2 = Menu.FIRST + 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sy); Button btnAdd = findViewById(R.id.btn_add); Button btnSearch = findViewById(R.id.btn_search); btnAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Sy.this, Xz.class); startActivity(intent); } }); btnSearch.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Sy.this, Ss.class); startActivity(intent); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, item1, 0, "关于"); menu.add(0, item2, 0, "退出"); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case item1: Toast.makeText(Sy.this, "姓名:骆树涛。学号:2404224132", Toast.LENGTH_SHORT).show(); break; case item2: finishAffinity(); break; } return true; } } 首页的sy.XML布局文件代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/btn_add" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="新增" android:textSize="20dp"/> <Button android:id="@+id/btn_search" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="查询" android:textSize="20dp"/> </LinearLayout> 图书新增的Xz.Java类代码: import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import androidx.appcompat.app.AppCompatActivity; public class Xz extends AppCompatActivity { private EditText editBookId; private EditText editBookName; private EditText editBookAuthor; private EditText editBookLocation; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.xz); editBookId = findViewById(R.id.edit_book_id); editBookName = findViewById(R.id.edit_book_name); editBookAuthor = findViewById(R.id.edit_book_author); editBookLocation = findViewById(R.id.edit_book_location); Button btnAddBook = findViewById(R.id.btn_add_book); btnAddBook.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String bookId = editBookId.getText().toString(); String bookName = editBookName.getText().toString(); String bookAuthor = editBookAuthor.getText().toString(); String bookLocation = editBookLocation.getText().toString(); Intent intent = new Intent(Xz.this, Xq.class); intent.putExtra("bookId", bookId); intent.putExtra("bookName", bookName); intent.putExtra("bookAuthor", bookAuthor); intent.putExtra("bookLocation", bookLocation); startActivity(intent); } }); } } 图书新增的xz.XML布局文件代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="图书编号" android:textSize="20dp"/> <EditText android:id="@+id/edit_book_id" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="图书名称" android:textSize="20dp"/> <EditText android:id="@+id/edit_book_name" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="图书作者" android:textSize="20dp"/> <EditText android:id="@+id/edit_book_author" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="馆藏地点" android:textSize="20dp"/> <EditText android:id="@+id/edit_book_location" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> <Button android:id="@+id/btn_add_book" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="新增" android:textSize="20dp" android:layout_gravity="center"/> </LinearLayout> 图书详情的Xq.java类代码: import android.content.Intent; import android.os.Bundle; import android.view.ContextMenu; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.TextView; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class Xq extends AppCompatActivity { private static final int ITEM_HOME = Menu.FIRST; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.xq); TextView tvBookId = findViewById(R.id.tv_book_id); TextView tvBookName = findViewById(R.id.tv_book_name); TextView tvBookAuthor = findViewById(R.id.tv_book_author); TextView tvBookLocation = findViewById(R.id.tv_book_location); Intent intent = getIntent(); String bookId = intent.getStringExtra("bookId"); String bookName = intent.getStringExtra("bookName"); String bookAuthor = intent.getStringExtra("bookAuthor"); String bookLocation = intent.getStringExtra("bookLocation"); tvBookId.setText("图书编号:" + bookId); tvBookName.setText("图书名称:" + bookName); tvBookAuthor.setText("图书作者:" + bookAuthor); tvBookLocation.setText("馆藏地点:" + bookLocation); } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, ITEM_HOME, 0, "首页"); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case ITEM_HOME: Intent intent = new Intent(Xq.this, Sy.class); startActivity(intent); finish(); return true; default: return super.onOptionsItemSelected(item); } } } 图书详情的xq.XML布局文件代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp"> <TextView android:id="@+id/tv_book_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp"/> <TextView android:id="@+id/tv_book_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp"/> <TextView android:id="@+id/tv_book_author" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp"/> <TextView android:id="@+id/tv_book_location" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp"/> </LinearLayout>在实验4的基础上,新增3个界面,分别是图书管理系统的“首页”、“图书新增”和“图书详情”界面。具体要求如下: (1)首页显示两个按钮,分别是“新增”和“查询”。点击“新增”按钮,跳转到图书新增界面;点击“查询”按钮,调整到图书查询界面(即实验4所完成的界面)。 (2)图书新增界面,设置图书编号、图书名称、图书作者和馆藏地点四个信息的输入框,以及一个“新增”按钮。用户点击新增按钮后,将用户输入的4个信息传递到图书详情页面,并显示图书详情页面。 (3)图书详情页面用于显示用户输入的图书编号、图书名称、图书作者和馆藏地点。 (4)整个应用程序的入口固定设置为“首页”对应的Activity。 (5)完善“图书查询界面”中的"返回"按钮,按钮的作用是回到首页。 (6)将实验3中,图书查询页面的OptionsMenu搬迁到首页程序中。根据题目来规划写个流程图
最新发布
06-28
private void addTableRow(TableLayout table, Object[] rowData) { TableRow row = new TableRow(requireContext()); Log.d(“log”,rowData[0].toString()); for (Object data : rowData) { TextView textView = new TextView(requireContext()); textView.setText(String.valueOf(data)); textView.setPadding(8, 12, 8, 12); row.addView(textView); } table.addView(row);<?xml version="1.0" encoding="utf-8"?> <androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 双滚动容器实现 --> <HorizontalScrollView android:layout_width="wrap_content" android:layout_height="wrap_content" android:fillViewport="true"> <TableLayout android:id="@+id/orderTable" android:layout_width="wrap_content" android:layout_height="wrap_content" android:stretchColumns="*" android:shrinkColumns="*" android:paddingEnd="16dp"> <!-- 表格标题行 --> <TableRow android:background="?attr/colorPrimary" android:padding="8dp"> <TextView android:text="订单号" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="产品编号" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="产品数量" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="组件名" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="板材信息" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="板材/组件" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="订购数量" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> </TableRow> </TableLayout> </HorizontalScrollView> </androidx.core.widget.NestedScrollView> }如何解决载入数据后表格变形,可以变形但不能上下变形,可以长短变形,并页面可以左右滚动
06-07
private void addTableRow(TableLayout table, Object[] rowData) { TableRow row = new TableRow(requireContext()); Log.d(“log”,rowData[0].toString()); for (Object data : rowData) { TextView textView = new TextView(requireContext()); textView.setText(String.valueOf(data)); textView.setPadding(8, 12, 8, 12); row.addView(textView); } table.addView(row);<?xml version=“1.0” encoding=“utf-8”?> <androidx.core.widget.NestedScrollView xmlns:android=“http://schemas.android.com/apk/res/androidandroid:layout_width=“match_parent” android:layout_height=“match_parent”> <!-- 双滚动容器实现 --> <HorizontalScrollView android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:fillViewport=“true”> <TableLayout android:id="@+id/orderTable" android:layout_width="wrap_content" android:layout_height="wrap_content" android:stretchColumns="*" android:shrinkColumns="*" android:paddingEnd="16dp"> <!-- 表格标题行 --> <TableRow android:background="?attr/colorPrimary" android:padding="8dp"> <TextView android:text="订单号" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="产品编号" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="产品数量" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="组件名" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="板材信息" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="板材/组件" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> <TextView android:text="订购数量" android:textColor="@android:color/white" android:padding="8dp" android:textStyle="bold"/> </TableRow> </TableLayout> </HorizontalScrollView> </androidx.core.widget.NestedScrollView> }如何解决载入数据后表格变形,单行可以变形但不能上下变形上下距离一个字符,横向可以超出页面并页面可以上下左右滚动
06-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值