我正在开发一个应用程序,但是在此页面上遇到了一个小的视觉故障,其中横幅显示在主视图下方。
http://i.stack.imgur.com/IzogQ.png
content.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.xml
<?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>
activity.java
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));
}
}
对于上下文,
menu();
运行标准的android绘制菜单,其修改之处在于它是要运行的方法,而不是在onCreate();
中完成除此以外,我认为我没有其他方法可以修改布局/外观。
如果解决方案需要任何其他代码或信息,我很乐意提供。
编辑:
建议解决方案的边距错误
尝试解决方案的错误下方的布局
最佳答案
在activity.xml
中,您永远不会将特权计算布局设置为菜单下方。我在这里更改了一些代码:
<?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
文件的宽度和高度设置为“ match_parent”。这也可能是问题的根源。编辑#2:
在这种情况下,contentLayout.perk_calc的FrameLayout中仅缺少一行代码。缺少的代码是:
app:layout_behavior="@string/appbar_scrolling_view_behavior"
。这样就可以将他的布局布置在屏幕顶部栏的下方。该代码已被编辑并放置在上面的代码中。