记录下侧滑栏drawerlayout的使用,具体效果如图:
很简单也就是普通的使用,直接上代码:
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