2个叠加的EditText字段独立出现

时间:2018-05-28 21:40:52

标签: android xml android-layout

我的应用程序布局有问题。我有2个碎片必须在活动中显示。它工作正常,但布局somehome显示一个EditText两次,并在彼此后面。您可以看到EditText的提示更暗,一旦我在TextEdit中输入内容,我就可以看到其他EditText在后台仍然可见。从外观的黑暗中可以看出,TextView和Switch显示两次:

Screenshot of the glitch

布局文件: 的 activity_main.xml中:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout 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:gravity="center_horizontal"
    android:orientation="vertical"
    tools:context=".QuickSteuerActivity">


    <fragment
        android:id="@+id/calculation_fragment"
        android:name="de.immozukunft.quicksteuer.CalculationFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        />

    <fragment
        android:id="@+id/settings_overview_fragment"
        android:name="de.immozukunft.quicksteuer.SettingsFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        /> </LinearLayout>

fragment_calculation.xml (这是EditText和Switch等的地方)

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/fragment_calculation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <EditText
            android:id="@+id/turnover"
            android:defaultValue="0"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/turnover_tax"
            android:inputType="numberDecimal"
            android:textSize="36sp"/>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/turnover_vattxt"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="10dp"
                android:text="@string/turnover_vattxt"
                android:visibility="visible" />

            <Switch
                android:id="@+id/turnover_vat"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="end"
                android:foregroundGravity="top"
                android:title="@string/industrial_tax"
                android:visibility="visible" />
        </LinearLayout>

        <EditText
            android:id="@+id/costs"
            android:defaultValue="0"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/costs"
            android:inputType="numberDecimal"
            android:textSize="36sp"/>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/costs_vattxt"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="10dp"
                android:text="@string/turnover_vattxt"
                android:visibility="visible" />

            <Switch
                android:id="@+id/costs_vat"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:title="@string/industrial_tax"
                android:visibility="visible" />

        </LinearLayout>

        <Button
            android:id="@+id/btncalculate"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="@string/calculate"
            android:textSize="24sp" />

    </LinearLayout>
</FrameLayout>

fragment_settings_overview.xml (2.Fragment)

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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/fragment_settings_overview"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/current_settings"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="8dp"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:padding="10dp"
            android:text="@string/overview_settings"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    </android.support.constraint.ConstraintLayout>

</FrameLayout>

如果需要,我还可以提供Java文件或任何其他文件。我只是不想让这个帖子膨胀。

如果有人有任何其他建议(编码风格等),请告诉我,我对Android编程相对较新:)

提前致谢

THE-E

编辑:

我认为我正在使用片段管理器弄乱布局。但我不确定。因为现在我甚至看到了一些PreferenceFragment。

活动的

onCreate()

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); //Layout
    manager = getSupportFragmentManager(); //Fragment-Manager

    CalculationFragment calculationFragment = new CalculationFragment(); //create calculation fragment
    SettingsOverviewFragment settingsOverviewFragment = new SettingsOverviewFragment(); //create settings overview fragment

    calculationFragment.setArguments(getIntent().getExtras()); //I don't know what happens here
    settingsOverviewFragment.setArguments(getIntent().getExtras()); //I don't know what happens here either

    FragmentTransaction transaction = manager.beginTransaction();
    transaction.add(R.id.calculation_fragment, calculationFragment); //add calculation fragment to the fragment transaction
    transaction.add(R.id.settings_overview_fragment, settingsOverviewFragment); //add settings overview fragment to the fragment transaction
    transaction.commit(); //commit the transaction


}

3 个答案:

答案 0 :(得分:1)

将两个片段的高度和宽度更改为wrap_content并查看它是否适合您?

答案 1 :(得分:0)

我在第二个文本中使用了Hint,在第一个文本中使用了TEXT

android:hint="@string/turnover_tax"

显示text模糊地使用Hint代替Netscape

android:hint="Your String"
android:text="Your String"

我在第二个文本中使用了Hint,在第一个文本中使用了TEXT

android:hint="@string/turnover_tax"

显示text模糊地使用Hint代替Netscape

android:hint="Your String"
android:text="Your String"

使用Hint表示必须在EditText中写入的提示 当您在Netscape EditText中键入Netscape时,嵌入式网格将显示在EditText中,并且可以设置或更改 但是当你写一个提示时,一旦你开始输入包含它的EditText

,它就会消失

答案 2 :(得分:0)

我发现了自己的错误。我使用FragmentManager在已经设置的Fragment的顶部添加了主Activity的onCreate。 Fragment已经在布局中设置了(这就是为什么我不需要使用FragmentManager( fragment_calculation.xml )。

我所要做的只是设置活动的布局,我就完成了。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); //Layout
}

这是我的onCreate() - 方法。

感谢您的帮助! :)