Android 사 이 드 슬라이드 메뉴 DrawerLayout 사용 설명

4759 단어 drawerlayoutAndroid
안 드 로 이 드 슈퍼 port.v4 에 서랍 보기 컨트롤 DrawerLayout 가 있 습 니 다.이 컨트롤 을 사용 하면 화면 에서 수평 으로 미 끄 러 지 거나 메뉴 를 닫 으 면 사용자 에 게 좋 은 체험 효 과 를 줄 수 있 습 니 다.
DrawerLayout 는 사 이 드 메뉴 와 메 인 콘 텐 츠 영역 두 부분 으로 나 뉘 는데 사 이 드 메뉴 는 제스처 에 따라 펼 쳐 지고 숨 길 수 있 으 며 메 인 콘 텐 츠 영역의 부분 은 메뉴 의 클릭 에 따라 달라 질 수 있다.DrawerLayout 는 사실 하나의 컨트롤 로 LinearLayout 와 차이 가 많 지 않 으 므 로 직접 사용 하면 됩 니 다.
DrawerLayout 속성
1.drawer Position:drawer 를 지정 하면 화면의 한쪽 에서 미 끄 러 집 니 다.
2.drawer Width:drawer 의 폭 을 지정 합 니 다.즉,창의 가장자리 에서 보기 의 정확 한 너비 로 끌 어 옵 니 다.
3.keyboard Dismiss Mode:키보드 가 드래그 에 응답 하 는 지 확인 합 니 다.거부 되 었 습 니 다.
  • 'none'(기본 값),드래그 는 키보드 에 영향 을 주지 않 습 니 다.
  • 4.567917.'on-drag',드래그 시작,키보드 기각.
    4.onDrawerClose:탐색 보기 가 닫 혔 을 때 함 수 를 호출 합 니 다.
    5.onDrawerOpen:네 비게 이 션 보기 가 열 릴 때 함 수 를 호출 합 니 다.
    6.onDrawerSlide:네 비게 이 션 보기 와 상호작용 할 때 함 수 를 호출 합 니 다.
    7.onDrawerState Changed:Drawer 상태 가 바 뀌 었 을 때 함 수 를 호출 합 니 다.drawer 는 3 가지 상태 가 있 습 니 다. 
  •  idle-네 비게 이 션 보기 와 상호작용 이 없다 는 뜻 입 니 다
  •  dragging--현재 네 비게 이 션 보기 와 의 상호작용 이 있 음 을 나타 낸다
  •  settling-네 비게 이 션 보기 와 의 상호작용 을 표시 하고 네 비게 이 션 보기 가 닫 히 거나 열 리 고 있 습 니 다
  • 8.renderNavigation View:네 비게 이 션 그림 은 화면의 한쪽 으로 렌 더 링 되 고 끌 어 낼 수 있 습 니 다.
    케이스
    가 져 오기 의존 라 이브 러 리 사용
    
    compile 'com.android.support:appcompat-v7:24.2.1' 
    레이아웃 파일
    
    <?xml version="1.0" encoding="utf-8"?>
    <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/v4_drawerlayout"
      android:layout_width="match_parent"
      android:layout_height="match_parent">
    
      <FrameLayout
        android:id="@+id/v4_drawerlayout_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
        <TextView
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:id="@+id/v4_text"
          android:textSize="22sp"
          android:textColor="@color/colorAccent"
          android:gravity="center"
          />
      </FrameLayout>
    
      <ListView
        android:layout_width="200dp"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        android:id="@+id/v4_listview"
        android:choiceMode="singleChoice"
        android:background="@android:color/white" />
    
    </android.support.v4.widget.DrawerLayout> 
    
    
    Activity
    
    public class DrawerActivity extends AppCompatActivity {
    
      private ListView listView;
    
      private DrawerLayout drawerLayout;
    
      private TextView textView;
    
      @Override
      protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.drawer_activity);
        initView();
      }
    
      private void initView()
      {
        listView=(ListView) findViewById(R.id.v4_listview);
        drawerLayout=(DrawerLayout) findViewById(R.id.v4_drawerlayout);
        textView=(TextView) findViewById(R.id.v4_text);
        initDate();
      }
    
      private void initDate(){
        final List<String> list = new ArrayList<String>();
        list.add("  ");
        list.add("  ");
        list.add("  ");
        list.add("  ");
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, list);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            textView.setText(list.get(position));
            showDrawerLayout();
          }
        });
        drawerLayout.openDrawer(Gravity.LEFT);//               
      }
    
      private void showDrawerLayout() {
        if (!drawerLayout.isDrawerOpen(Gravity.LEFT)) {
          drawerLayout.openDrawer(Gravity.LEFT);
        } else {
          drawerLayout.closeDrawer(Gravity.LEFT);
        }
      }
    } 
    
    
    그림 과 같이 실행 효과:

    다운로드 주소:Drawerlayout_jb51.rar
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기