카테고리 없음
Drawer
장꾸꾸
2020. 10. 7. 15:19
MainActivity
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button btEdit;
Button btStudy;
Button btQuit;
TextView welcome;
//TODO drawer넣기
DrawerLayout drawer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btEdit = findViewById(R.id.bt_edit);
btStudy = findViewById(R.id.bt_study);
btQuit = findViewById(R.id.bt_quit);
welcome = findViewById(R.id.welcome_tv);
drawer = findViewById(R.id.drawer);
drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
boolean isOpen = drawer.isDrawerOpen(GravityCompat.START);
findViewById(R.id.img_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
drawer.openDrawer(GravityCompat.START);
}
});
xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout 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:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
// 처음 켰을 때 나오는 부분
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimaryDark">
<ImageButton
android:id="@+id/img_btn"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_centerInParent="true"
android:src="@drawable/cat" />
<TextView
android:id="@+id/welcome_tv"
android:layout_width="wrap_content"
android:layout_height="70dp"
android:textColor="@color/colorAccent"
android:text="WELCOME TO 단어장"
android:textStyle="italic"
android:textSize="43sp"
android:layout_centerHorizontal="true"
android:layout_above="@id/img_btn"/>
</RelativeLayout>
// 아래 리니어가 왼쪽에서 나타나는 drawer
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/colorAccent"
android:orientation="vertical">
<Button
android:id="@+id/bt_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="150dp"
android:text="단어장 편집"
android:textSize="23sp" />
<Button
android:id="@+id/bt_study"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/bt_edit"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:text="단어장 풀기"
android:textSize="23sp" />
<Button
android:id="@+id/bt_quit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/bt_study"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:text="끝내기"
android:textSize="23sp" />
</LinearLayout>
</androidx.drawerlayout.widget.DrawerLayout>
package com.example.drawlayout;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
DrawerLayout drawer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
drawer = findViewById(R.id.drawer);
drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
boolean isOpen =drawer.isDrawerOpen(GravityCompat.START);
findViewById(R.id.btn).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
drawer.openDrawer(GravityCompat.START);
}
});
}
}
start는 왼쪽에서 서랍이 열리고
end는 오른쪽에서 서랍이 열린다.
end와 start는 자바와 xml 모두에서 설정해줘야 함.
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout 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:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#456785">
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#ff0000"
android:orientation="vertical">
<Button
android:id="@+id/two_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</androidx.drawerlayout.widget.DrawerLayout>