我对Android应用程序开发完全陌生,我遇到了一个问题:
当我在DrawerLayout上按下按钮时,我正在向我的主LinearLayout添加内容:
private void switchTo(String text) {
final LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 0.0F);
final TextView textView = new TextView(this);
textView.setLayoutParams(params);
textView.setText("New text: " + text);
content.addView(textView, 0);
}
但是这会在我的LinearLayout上添加文字:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/main_layout"
android:gravity="bottom">
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:background="#e6e6e6"
android:layout_height="match_parent">
<ListView
android:id="@+id/navList"
android:layout_width="250dp"
android:layout_height="match_parent"
android:layout_gravity="left|start"
android:background="#cccccc"/>
</android.support.v4.widget.DrawerLayout>
如何设置在DrawerLayout之后添加文本,因为现在添加文本会将DrawerLayout向下推(如果不清楚,我希望DrawerLayout保持在页面顶部的高度,同时渲染文本& #34;旁边&#34;)
答案 0 :(得分:1)
DrawerLayout就像这样工作
要添加导航抽屉,请使用a声明您的用户界面 DrawerLayout对象作为布局的根视图。在 - 的里面 DrawerLayout,添加一个包含主要内容的视图 屏幕(隐藏抽屉时的主要布局)和另一个 查看,其中包含导航抽屉的内容。
Check this information regarding DrawerLayouts
您的布局文件应该有2个视图:
1 - 主要内容(当抽屉关闭时)
2 - 抽屉本身
我会像你这样的布局
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The main content view : here you define the layout of your activity -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- The main content view : here you define the layout of your activity -->
<LinearLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The navigation drawer -->
<ListView
android:id="@+id/navList"
android:layout_width="250dp"
android:layout_height="match_parent"
android:layout_gravity="left|start"
android:background="#cccccc"/>
<LinearLayout/>
</android.support.v4.widget.DrawerLayout>
此外,当您指定:
content.addView(textView, 0);
严格来说,您要将textView添加到内容的第一个位置。 这会在textI之前添加textView,导致textView位于drawerLayout之前 Check this reference regarding ViewGroups and adding views
因此,修改后的代码将是
..
private LinearLayout contentFrame;
..
contentFrame = (LinearLayout) findViewById(R.id.content_frame);
...
private void switchTo(String text) {
final LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 0.0F);
final TextView textView = new TextView(this);
textView.setLayoutParams(params);
textView.setText("New text: " + text);
contentFrame.addView(textView);
}