为什么我的横幅出现在我的主视图下?

时间:2016-07-10 22:21:14

标签: java android xml android-layout layout

我正在开发一款应用,但是我在这个页面上遇到一个小视觉故障,其中横幅出现在主视图下方。

bugged ui image http://i.stack.imgur.com/IzogQ.png

content.xml中

foreach($value[10] as $key=>$value){}

activity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.example.ben.trimpsapp.DrawerMenu">


    <RelativeLayout
..../>
</RelativeLayout>

activity.java

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">

    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        tools:context=".CalcActivity">

        <include
            layout="@layout/app_bar_drawer_menu"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <include
            layout="@layout/content_perk_calc"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="35dp" />

    </android.support.design.widget.CoordinatorLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_drawer_menu"
        app:menu="@menu/activity_drawer_menu_drawer" />

</android.support.v4.widget.DrawerLayout>

对于上下文,package com.example.ben.trimpsapp; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; /** * Created by Ben on 07/07/2016. */ public class CalculatorActivity extends MainActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_perk_calc); EditText editText; editText = (EditText) findViewById(R.id.input); editText.setGravity(Gravity.CENTER_HORIZONTAL); Button button = (Button) findViewById(R.id.submit); button.setText(String.valueOf("kek")); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { calcMain(); } }); menu(); } public void calcMain() { double cost = 1; double multiplier = 2; int count = 0; EditText editText = (EditText) findViewById(R.id.input); ; double helium = Integer.parseInt(editText.getText().toString()); while (helium >= cost) { helium = helium - cost; cost = cost * multiplier; count++; } int remainder = (int) helium; final TextView coordinatedCount = (TextView) findViewById(R.id.textView0); coordinatedCount.setText(String.valueOf(count)); final TextView remainderCount = (TextView) findViewById(R.id.textView11); remainderCount.setText(String.valueOf(remainder)); } } 运行标准的android绘图菜单,修改后是一个要运行的方法,而不是在menu();

中完成

我不相信除此之外还有任何修改布局/外观的方法。

如果解决方案需要任何其他代码或信息,我很乐意提供解决方案。

编辑:

来自建议解决方案的保证金错误

enter image description here

尝试解决方案的错误下的布局

enter image description here

1 个答案:

答案 0 :(得分:2)

activity.xml中,您永远不会将perk calc布局设置为菜单下方。我在这里更改了一些代码:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">

    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        tools:context=".CalcActivity">

        <android.support.design.widget.AppBarLayout
            android:id="@+id/app_bar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/AppTheme.AppBarOverlay">

            <include
                layout="@layout/app_bar_drawer_menu"
                android:id="@+id/drawer_menu"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

        </android.support.design.widget.AppBarLayout>

        <FrameLayout
            android:id="@+id/frameLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/app_bar">

            <include
                layout="@layout/content_perk_calc"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layout_behavior="@string/appbar_scrolling_view_behavior" />

        </FrameLayout>

    </android.support.design.widget.CoordinatorLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_drawer_menu"
        app:menu="@menu/activity_drawer_menu_drawer" />

</android.support.v4.widget.DrawerLayout>

希望这有帮助!

修改 所以我检查了一些其他默认代码的布局,并想出了另一种可行的方法。我在FrameLayout中包围了您的布局,并将您的菜单布局放在AppBarLayout中。我通常在使用Android工具栏时使用它,所以我认为这应该有效。另请注意,您的content.xml文件的宽度和高度设置为&#34; match_parent&#34;。这也可能是问题的根源。

编辑#2: 在这种情况下,frameLayout中只有一行代码缺少content_perk_calc。缺少的代码是:app:layout_behavior="@string/appbar_scrolling_view_behavior"。这使得他的布局布局在屏幕顶部的栏下面。代码已经过编辑并放在上面的代码中。