이번 시간에는 Material app bars top에 대해서 알아보겠습니다.
build.gradle(Module:프로젝트명:app)
dependencies 괄호 안에 아래 코드를 넣어주시면 됩니다.
implementation 'com.google.android.material:material:1.4.0'
( res -> value -> themes)
style 태그 속성 parent를 아래 코드로 변경해주시면 됩니다.
app bar를 만들어야 하기 때문에 noActionBar를 통해 액션바를 없애줘야 합니다.
<style name="Theme.MaterialExam" parent="Theme.MaterialComponents.Light.NoActionBar">
2020.12.19 - [안드로이드] - [안드로이드]라이브러리 찾아 등록하는 방법
app -> New -> Android Resource File
File name : main_menu
Resource type: Menu로 하시면 됩니다.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/app_bar_search"
android:icon="@drawable/ic_search"
android:title="Search"
app:actionViewClass="android.widget.SearchView"
app:showAsAction="always" />
<item android:id="@+id/menu1"
android:title="menu1" />
<item android:id="@+id/menu2"
android:title="menu2" />
</menu>
아이콘 res -> drawable
<?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">
<!-- layout_behavior: RecyclerView와 자연스럽게 연결-->
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="512dp"
android:paddingBottom="512dp" />
</androidx.core.widget.NestedScrollView>
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:liftOnScroll="true">
<!-- 스크롤에 따라 Toolbar를 확장하거나 축소할 수 있게 함-->
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentScrim="@color/purple_200"
app:expandedTitleGravity="bottom"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:scrimAnimationDuration="300">
<ImageView
android:layout_width="match_parent"
android:layout_height="350dp"
android:scaleType="centerCrop"
android:src="@drawable/cat"
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier="0.7" />
<androidx.appcompat.widget.Toolbar
android:id="@+id/main_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" />
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
색상 res -> values -> colors.xml
<color name="purple_200">#FFBB86FC</color>
이미지 res -> drawable
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
public class MainActivity extends AppCompatActivity {
private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = findViewById(R.id.main_toolbar);
//툴바 적용
setSupportActionBar(toolbar);
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch(item.getItemId()){
case R.id.menu1:
Toast.makeText(getApplicationContext(), "menu1" , Toast.LENGTH_SHORT).show();
return true;
case R.id.menu2:
Toast.makeText(getApplicationContext(), "menu2" , Toast.LENGTH_SHORT).show();
return true;
}
return true;
}
});
}
//메뉴 추가
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}
}
2021.12.18 - [안드로이드] - [안드로이드] Material app bars bottom 쉽게 만드는 방법
2021.12.16 - [안드로이드] - [안드로이드] Material tabs [Fixed tabs, Scrollable tabs] 쉽게 만드는 방법
2021.12.17 - [안드로이드] - [안드로이드] Material Tabs Custom 하는 방법
[안드로이드] Material Floating Action Button Animation 적용하는 방법 (0) | 2021.12.21 |
---|---|
[안드로이드] Material Floating Action Button 쉽게 만드는 방법 (0) | 2021.12.20 |
[안드로이드] Material app bars bottom 쉽게 만드는 방법 (0) | 2021.12.18 |
[안드로이드] Material Tabs Custom 하는 방법 (0) | 2021.12.17 |
[안드로이드] Material tabs [Fixed tabs, Scrollable tabs] 쉽게 만드는 방법 (0) | 2021.12.16 |
댓글 영역