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(權重)
- android:orientation(方向)
-
相對佈局: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控制元件裡面的
- android:foregroundGravity="center":擺放在中間
- android:layout_gravity(控制元件重力 )
實現在一個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:可以隱藏的列
- android:stretchColumns:可以伸展的列
控制元件出現在一行裡面
<!--如果直接在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之後: