设备上未显示按钮的 Android 片段

问题描述 投票:0回答:1

我在 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>

Designer

Screenshot from device

因此您可以看到片段fragment_edit_buttons.xml没有显示在设备的主页中,而是显示在设计器中。这个设计有什么问题吗?

我尝试显示导航图的主页,并期望fragment_edit_buttons片段显示在设备上,但它丢失了。

android android-layout android-fragments
1个回答
0
投票

在fragment_edit_buttons.xml中添加像

tools:context=".EditButtonsFragment"
这样的字符串没有解决你的问题吗?

© www.soinside.com 2019 - 2024. All rights reserved.