1. 程式人生 > 其它 >Android_2021年10月9日

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之後: