반응형
◎Material Design : Gogle 디자인 가이드 라인
①Navigation Drawer
②Toolbar
③AppBar Layout, TabLayout
④Floating Action Button
SnackBar - Toast와 비슷하지만 업그레이드 된거라 생각하면 됨.
CoordinatorLayout - 이 레이아웃을 사용하지 않으면, 밑에서 스택바가 올라왔을때, (+)를 가린다.
<실행 화면>
activity_main.xml 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<!-- corrdinatorLaouy으로 바꿈 - -->
<!-- material이기에 project structure 해야함.-->
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|bottom"
android:layout_margin="16dp"
android:backgroundTint="@color/colorPrimary"
app:rippleColor="@color/colorAccent"
app:fabSize="auto"
android:src="@android:drawable/ic_input_add"
android:onClick="clickfab"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="show snackbar"
android:layout_gravity="center"
android:onClick="clickbtn"
/>
<!-- relative를 제외한 나머지 view들을 align이 없어서 gravirit로 이동-->
<!-- 스낵바가 놓여질 위치의 기준 뷰-->
android:id="@+id/layout_snackbar_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="88dp"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
>
<!-- backgroundTint로 사용한다. -->
<!-- fab는 float action button의 줄인말-->
|
MainActivity.java 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
package com.tistory.firewallgogo.ex50fab;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//다이얼로그보다 편한 다이얼로그 같은 느낌.
public void clickfab(View view) {
//Toast말고 다른걸로 하기
snackbar.setAction("Submit", new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,"click submit",Toast.LENGTH_SHORT).show();
}
});
}
public void clickbtn(View view) {
//스낵바가 나타나는 위치를 지정하기
CoordinatorLayout coordinatorLayout =findViewById(R.id.layout_snackbar_container);
Snackbar snackbar = Snackbar.make(coordinatorLayout,"this is a snackbar", Snackbar.LENGTH_INDEFINITE);
snackbar.setAction("OK", new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
}
}
|
반응형
'안드로이드 웹앱 콘테츠 개발자 양성(국비지원) > Android 화면 구성 기능(디자인- xml 과 java로 제어)' 카테고리의 다른 글
Android Studio Material Design 그외 3 (CollapsingToolbarLayout) (0) | 2019.10.01 |
---|---|
Android Studio Material Design 그외 2 (CoordinatorLayout, NestedScrollView) (0) | 2019.09.30 |
Android Studio Material Design (Navigation Drawer, Toolbar, AppBar Layout, TabLayout) (0) | 2019.09.30 |
Android Studio Navigation Drawer + ToolBar (3) | 2019.09.27 |
Android Studio ToolBar (0) | 2019.09.27 |
댓글