侧边栏drawerlayout的简单使用

记录下侧滑栏drawerlayout的使用,具体效果如图:

侧边栏drawerlayout的简单使用_第1张图片

很简单也就是普通的使用,直接上代码:

import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private ListView listView;
    private DrawerLayout drawerLayout;
    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        listView = findViewById(R.id.v4_listview);
        drawerLayout = findViewById(R.id.v4_drawerlayout);
        textView = findViewById(R.id.v4_text);
        initDate();
    }

    private void initDate() {
        final List list = new ArrayList<>();
        list.add("111");
        list.add("222");
        list.add("333");
        list.add("444");
        ArrayAdapter 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);
        }
    }
}

布局文件:

 




    
        
    

    

需要说明的几点:

1.想要从右边向左边划出,需要设置graviry="right"属性即可

2.防止点击穿透,需要设置android:clickable="true"

完整项目地址:

https://github.com/buder-cp/base_component_learn/tree/master/drawelayout_learn

你可能感兴趣的:(Android)