如何以编程方式创建DrawerLayout [英] How to create DrawerLayout programmatically

查看:79
本文介绍了如何以编程方式创建DrawerLayout的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在我的主要活动中将此xml转换为java,输出是导航抽屉.我只需要这部分的帮助,其余部分我就完成了.

I would like to translate this xml to java in my main activity, the output is navigation drawer. I need help only in this part, I finished the remaining parts.

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<FrameLayout
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
</FrameLayout>

<ListView
    android:id="@+id/drawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="#FFF"
    android:choiceMode="singleChoice"/>

我想用Java代码在xml上面写,怎么做?

I would like to write above xml in java code, How ?

预先感谢

更新

final DrawerLayout drawer = new android.support.v4.widget.DrawerLayout(this);
     final FrameLayout fl = new FrameLayout(this);
     fl.setId(CONTENT_VIEW_ID);
     final ListView navList = new ListView (this);

     drawer.addView(fl, new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
     drawer.addView(navList);

     setContentView(drawer);

在代码中自定义listview的布局宽度和布局重力不需要什么帮助.

I need little help to customise listview's layout width and layout gravity in code.

推荐答案

(由OP在问题编辑中回答.转换为社区Wiki答案.请参见

(Answered by the OP in a question edit. Converted to a community wiki answer. See Question with no answers, but issue solved in the comments (or extended in chat) )

OP写道:

我解决了,这里是完整的代码

I solved, here is the complete code

final DrawerLayout drawer = new android.support.v4.widget.DrawerLayout(this);
     final FrameLayout fl = new FrameLayout(this);
     fl.setId(CONTENT_VIEW_ID);
     final ListView navList = new ListView (this);

     DrawerLayout.LayoutParams lp = new DrawerLayout.LayoutParams(
            100 , LinearLayout.LayoutParams.MATCH_PARENT);

     lp.gravity=Gravity.START;


     navList.setLayoutParams(lp); 

     drawer.addView(fl, new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
     drawer.addView(navList);

     setContentView(drawer);

这篇关于如何以编程方式创建DrawerLayout的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆