我在 Android Studio 设计器中显示 framgent 时遇到问题,但在设备上启动时却没有。
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fcvNavHostId"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="87dp"
android:layout_weight="1"
app:defaultNavHost="true"
app:navGraph="@navigation/navigation_graph" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
navigation_graph.xml:
<?xml version="1.0" encoding="utf-8"?>
<navigation
android:id="@+id/navigation_graph"
app:startDestination="@id/inOutListFragment">
<fragment
android:id="@+id/inOutListFragment"
android:name="com.visrcrd.inout.InOutListFragment"
android:label="fragment_in_out_list"
tools:layout="@layout/fragment_in_out_list" >
<action
android:id="@+id/action_inOutListFragment_to_categoriesEditFragment"
app:destination="@id/categoriesEditFragment" />
<action
android:id="@+id/action_inOutListFragment_to_filtersFragment"
app:destination="@id/filtersFragment" />
</fragment>
<fragment
android:id="@+id/categoriesEditFragment"
android:name="com.visrcrd.inout.CategoriesEditFragment"
android:label="CategoriesEditFragment" >
<action
android:id="@+id/action_categoriesEditFragment_to_categoryEditFragment"
app:destination="@id/categoryEditFragment" />
</fragment>
<fragment
android:id="@+id/categoryEditFragment"
android:name="com.visrcrd.inout.CategoryEditFragment"
android:label="fragment_category_edit"
tools:layout="@layout/fragment_category_edit" />
<fragment
android:id="@+id/filtersFragment"
android:name="com.visrcrd.inout.FiltersFragment"
android:label="fragment_filters"
tools:layout="@layout/fragment_filters" >
<action
android:id="@+id/action_filtersFragment_to_filterFragment"
app:destination="@id/filterFragment" />
</fragment>
<fragment
android:id="@+id/filterFragment"
android:name="com.visrcrd.inout.FilterFragment"
android:label="fragment_filter"
tools:layout="@layout/fragment_filter" >
<action
android:id="@+id/action_filterFragment_to_filterStepFragment"
app:destination="@id/filterStepFragment" />
</fragment>
<fragment
android:id="@+id/filterStepFragment"
android:name="com.visrcrd.inout.FilterStepFragment"
android:label="fragment_filter_step"
tools:layout="@layout/fragment_filter_step" />
</navigation>
fragment_inout_list.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".InOutListFragment" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btCategories"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="90dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_weight="1"
android:onClick="showCategories"
android:text="@string/categories" />
<Button
android:id="@+id/btFilters"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="90dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="showFilters"
android:text="@string/filters" />
</LinearLayout>
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fcvFilterTimeId"
android:name="com.visrcrd.inout.TimespanFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:layout="@layout/fragment_timespan" />
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fcvEditButtonsId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="visible"
tools:layout="@layout/fragment_edit_buttons" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rcvId"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
fragment_time_span.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context=".TimespanFragment" >
<com.visrcrd.inout.DateTextView
android:id="@+id/dtBeginId"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10" />
<com.visrcrd.inout.TimeTextView
android:id="@+id/dtBeginTimeId"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:inputType="text" />
<TextView
android:id="@+id/textView8"
android:layout_width="20dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-" />
<com.visrcrd.inout.DateTextView
android:id="@+id/dtEndId"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10" />
<com.visrcrd.inout.TimeTextView
android:id="@+id/dtEndTimeId"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
fragment_edit_buttons.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageButton
android:id="@+id/btAddId"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_weight="1"
android:contentDescription="@string/add_item"
android:scaleType="fitCenter"
android:src="@drawable/increase_volume" />
<ImageButton
android:id="@+id/btEditId"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_weight="1"
android:contentDescription="@string/edit_item"
android:scaleType="fitCenter"
android:src="@drawable/edit_text" />
<ImageButton
android:id="@+id/btDeleteId"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_weight="1"
android:contentDescription="@string/delete_items"
android:scaleType="fitCenter"
android:src="@drawable/delete_button1" />
</LinearLayout>
因此您可以看到片段fragment_edit_buttons.xml没有显示在设备的主页中,而是显示在设计器中。这个设计有什么问题吗?
我尝试显示导航图的主页,并期望fragment_edit_buttons片段显示在设备上,但它丢失了。
在fragment_edit_buttons.xml中添加像
tools:context=".EditButtonsFragment"
这样的字符串没有解决你的问题吗?