Android_2021年10月9日

2021年10月9日记录

一、项目完善

1、首先要进行判断是用户名和密码是否为空

//1.判断姓名和密码是否为空
EditText nameEdt = findViewById(R.id.name);
EditText pwdEdt = findViewById(R.id.password);

String name = nameEdt.getText().toString();
String password =pwdEdt.getText().toString();

如果为空的话,则提示用户,所以就需要在前台打印出来,后台不需要

  • Toast是一种简易的消息提示框。
    当视图显示给用户,在应用程序中显示为浮动。和Dialog不一样的是,它永远不会获得焦点,无法被点击

    if (name.equals("")||password.equals("")){
    //2.如果为空,则提示
    //无焦点提示
    //参数1:环境上下文,保持this不变 参数2:提示性文本 参数3:提示持续时间 后面需要跟一个.show()方法来展示出来
    Toast.makeText(this,"姓名或者密码不能为空",Toast.LENGTH_SHORT).show();
    }

如果不为空,用进度条展示注册过程(其实可有可无,这个项目就是为了单纯展示下学的东西)

//3.都不为空,则出现进度条
proBar.setVisibility(View.VISIBLE);  //setVisibility:设置进度条的样式对否可见;View.VISIBLE表示可见

//还是使用线程来展示缓慢加载的进度条
new Thread() {
    public void run(){
        for (int i =0;i<=100;i++){
            proBar.setProgress(i);
            try {
                Thread.sleep(30);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}.start();

二、约束布局:ConstraintLayout

  • 线性布局:LinearLayout
    水平或者垂直方向依次摆放的布局。

    • android:orientation(方向)
      • vertical:垂直方向
      • horizontal:水平方向
    • android:layout_weight(权重)
  • 相对布局:RelativeLayout
    依靠参照物定位的布局,最灵活的布局。参照器只有父容器。

    • android:layout_alignParentRight:和父容器的右边对齐
    • android:layout_alignParentLight:和父容器的左边对齐
    • android:layout_alignParentTop:和父容器的顶端对齐
    • android:layout_alignParentButton:和父容器的底端对齐
      上述这四个的回答只有true或者false
    • android:layout_centerHorizontal:是否要在父容器里面水平居中
    • android:layout_centerVertical:是否要在父容器里面垂直居中
      上述这两个的回答只有true或者false
    • android:layout_centerInParent=“true”:是否居中处于父容器
      这个属性等于上面两个属性相加的结果
      ===========================================================
    • android:layout_toLeftOf:以其他的控件为参照物,需要其他控件的id,在其他控件的左边
    • android:layout_alignRight:以其他的控件为参照物,需要其他控件的id,和控件的边线对齐
  • 帧布局:FrameLayout

    • android:layout_gravity(控件重力 )
      • android:layout_gravity="center_horizontal|center_vertical" 水平并且居中放置,中间用|链接
      • android:layout_gravity="right|bottom" 右下方放置
    • android:foreground(前景):可以摆放一张图片 ;这个前景,是所有的帧布局最上面一层的
      • android:foreground=”@mipmap/ic_launch“
    • android:foregroundGravity(前景重力):摆放图片的位置
      • android:foregroundGravity="center":摆放在中间
        上面的两个,是放在里面的;android:layout_gravity是放在View控件里面的

实现在一个MainActivity中调用另一个FrameActivity:

这是一个Butten按钮,点击之后会触发这个调用

activity_main.xml文件里面的内容

<Button
        android:id="@+id/frame"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="帧布局"
        android:onClick="myClick"
        />

MainActivity里面的写法,新建一个myClick类,在这个类里面实现调用;FrameActivity.class就是调用的类,这个就需要你自己去创建了

//帧布局点击事件
    public void myClick(View view) {
        switch (view.getId()){
            case R.id.frame:
                startActivity(new Intent(this,FrameActivity.class));
        }
    }

然后创建FrameActivity类,在这个类里面

  • 表格布局:TableLayout
    table中可以不用设置宽和高,控件直接自己设置好了;
    • android:stretchColumns:可以伸展的列
      android:stretchColumns=“1”,代表着第一列是可以根据这个行不满进行拉伸
      android:stretchColumns=“1,2,3,4”,代表着第一列的每个元素都可以进行拉伸,简单写法“*”
    • android:shrinkColumns:可以收缩的列
    • android:collapseColumns:可以隐藏的列

控件出现在一行里面

<!--如果直接在TableLayout中添加控件的话,那么控件将和父容器等宽-->
<!--如果直想让控件出现在同一行,那么这些控件的外层一定要加一个<TableRow>标签-->
<!--在TableRow控件中,宽度都是默认wrap_content-->
<TableRow>
    <Button android:text="7"
        />
    <Button android:text="8"
        />
    <Button android:text="9"
        />
    <Button android:text="/"
        />
</TableRow>
  • 网格布局:GirdLayout
    可以自身定义有多少行多少列
    • android:rowCount(行数量)
    • android:columnCount(列数量)
    • android:layout_row(位于第几行)
    • android:layout_rowSpan(跨几行)

在使用跨列layout_columnSpan的时候,会有这个效果出现,但是并不会真的跨列,就需要使用layout_gravity="fill"来实现效果。

没有使用fill之前:

使用fill之后:

posted @ 2021-10-09 13:14  听,花开了  阅读(79)  评论(0)    收藏  举报