2016-02-19 84 views
0

堆放在彼此的顶部我必须把我的单位转换器应用到片段,并有工作。所有东西都编译好了,所以我可以在虚拟机中运行它。唯一的问题是,所有的XML视觉效果都堆叠在一起。我将提供代码和虚拟机中的外观图片。请帮我解决我的问题,以免它们堆叠在一起。片段Android Studio中在虚拟机

content_unit_converter.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.plamen.unitconverter.UnitConverterActivity" 
tools:showIn="@layout/activity_unit_converter"> 

    <fragment 
    android:id="@+id/unitconverterfragment" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:name="com.plamen.unitconverter.UnitConverterFragment"/> 
<fragment 
    android:id="@+id/unitcoverterdisplay" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:name="com.plamen.unitconverter.UnitConverterDisplay"/> 

</RelativeLayout> 

fragment_unit_converter.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.plamen.unitconverter.UnitConverterActivity" 
tools:showIn="@layout/activity_unit_converter"> 

<RadioGroup 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/TemperatureEditText" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:id="@+id/radioGroup"> 


    <RadioButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="From Celsius to Farenheit" 
     android:id="@+id/toFarenheitRadioButton" 
     android:checked="true" /> 

    <RadioButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="From Farenheit to Celsius" 
     android:id="@+id/toCelsiusRadioButton" 
     android:checked="false" /> 
</RadioGroup> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Convert" 
    android:id="@+id/convertButton" 
    android:layout_below="@+id/radioGroup" 
    android:layout_centerHorizontal="true"/> 

<Spinner 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/spinner1" 
    android:spinnerMode="dropdown" 
    android:layout_below="@+id/LengthEditText" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="false" 
    android:layout_alignRight="@+id/LengthEditText" 
    android:layout_alignEnd="@+id/LengthEditText" 
    android:entries ="@array/length" 

    /> 


<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="CONVERT" 
    android:id="@+id/convertLength" 
    android:layout_below="@+id/spinner1" 
    android:layout_centerHorizontal="true"/> 

<Spinner 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/spinner2" 
    android:layout_below="@+id/AreaEditText" 
    android:layout_centerHorizontal="true" 
    android:entries ="@array/area" 
    /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Convert" 
    android:id="@+id/convertArea" 
    android:layout_below="@+id/spinner2" 
    android:layout_centerHorizontal="true"/> 

</RelativeLayout> 

fragment_unit_converter_display.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.plamen.unitconverter.UnitConverterActivity" 
tools:showIn="@layout/activity_unit_converter"> 

<EditText 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:inputType="numberDecimal" 
    android:ems="10" 
    android:id="@+id/TemperatureEditText" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:hint="Enter Temperature" /> 

<EditText 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:inputType="numberDecimal" 
    android:ems="10" 
    android:id="@+id/LengthEditText" 
    android:hint="Enter Length" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" /> 

<EditText 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:inputType="numberDecimal" 
    android:ems="10" 
    android:id="@+id/AreaEditText" 
    android:layout_below="@+id/convertLength" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:hint="Enter Area" /> 

</RelativeLayout> 

这是个什么样子,当我在虚拟机上运行它像

enter image description here

这是什么样子后,我试过的android:layout_below 它还将被复制,我不知道为什么。

enter image description here

+0

那么,在'content_unit_converter.xml'定义你的两个片段是在一个'RelativeLayout',因此他们简单地放置在彼此的顶部 - 就像它会与任何看法。您可能只想显示一个,因此在需要时使用片段事务来隐藏或显示相关片段。或者,可能更好,动态实例化第二个片段,并使用事务添加/替换它。或者,如果两者应该同时可见,只需添加规则将一个位置放在另一个之下(尽管在这种情况下'LinearLayout'可能更合适)。 –

+0

您希望布局看起来如何?你能提供一个样机图纸吗? –

回答

2

一般情况下,只要您使用相对布局必须指定事情。在线性布局中,添加新物体会将其放置在前一个元素的下方/旁边(取决于您的方向),但在相对布局中,这不会发生。

所以,你有这样的:

<fragment 
android:id="@+id/unitconverterfragment" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:name="com.plamen.unitconverter.UnitConverterFragment" 

/> 
<fragment 
android:id="@+id/unitcoverterdisplay" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:name="com.plamen.unitconverter.UnitConverterDisplay" 
/> 

在这里你只显示2个片段,但没有说哪一个先行在那里。

你可以加入这一行,或类似:

android:layout_below="@id/unitconverterfragment" 

所以,现在你也会有这样的:

<fragment 
android:id="@+id/unitconverterfragment" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:name="com.plamen.unitconverter.UnitConverterFragment" 

/> 
<fragment 
android:id="@+id/unitcoverterdisplay" 
android:layout_below="@id/unitconverterfragment" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:name="com.plamen.unitconverter.UnitConverterDisplay" 
/> 

您可以在下面放置它,右,左,上顶等等......

+0

我用你的建议添加了一张新照片。 – Plam

+0

是啊...将相同的东西应用于编辑文本和每个片段内的所有元素。你必须告诉布局你想要单独的东西 – TooManyEduardos