我的应用程序布局有问题。我有2个碎片必须在活动中显示。它工作正常,但布局somehome显示一个EditText两次,并在彼此后面。您可以看到EditText的提示更暗,一旦我在TextEdit中输入内容,我就可以看到其他EditText在后台仍然可见。从外观的黑暗中可以看出,TextView和Switch显示两次:
布局文件: 的 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
}
答案 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() - 方法。
感谢您的帮助! :)