我有兴趣尝试Android Studio中显示的导航图。但是在导入google sample
后,我的预览不可用我使用的是Android Studio 3.2 Preview Canary 16
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:startDestination="@+id/launcher_home">
<fragment
android:id="@+id/launcher_home"
android:name="com.android.samples.arch.componentsbasicsample.StartFragment"
android:label="Home">
<action
android:id="@+id/end_action"
app:destination="@id/end_dest" />
</fragment>
<fragment
android:id="@+id/end_dest"
android:name="com.android.samples.arch.componentsbasicsample.EndFragment"
android:label="End"
>
</fragment>
</navigation>
于10/6/2018更新:
即使我重建了它不起作用的项目。但是如果添加了新屏幕,它会在预览模式下显示新屏幕
答案 0 :(得分:29)
您应该点击导航编辑器中的“文本”标签(导航图的xml文件),然后添加:
tools:layout="@layout/layout_name"
目标元素内部。
应该是这样的:
<fragment
android:id="@+id/someFragment"
android:name="com.freesoulapps.navigationtest.fragments.SomeFragment"
android:label="Some Fragment"
tools:layout="@layout/layout_name">
</fragment>
答案 1 :(得分:5)
还有另一种在导航xml中进行预览的方法。 首先进入您的xml片段,添加
tools:context="com.packagename.nameFragment"
就是这样
如果您进入导航文件,则可以在选区和导航编辑器中看到预览
如果您在代码中查找的是自动写入
tools:layout="@layout/layout_name"
对我来说,在将片段添加到导航编辑器中之前先进行预览是比较逻辑的。 可能有自动添加工具的方法:在布局中添加上下文
自动完成功能不建议使用tools:context片段,而仅建议tools:context活动主机,因此您需要输入片段的名称...如果有人对此有窍门
了解有关tools:context的更多信息: enter link description here
答案 2 :(得分:1)
只需添加 工具:布局=“片段名称” 预览不可见的每个片段。 示例:-
<navigation
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/nav_graph"
app:startDestination="@id/startFragment">
<fragment
android:id="@+id/pickupFragment"
android:name="com.example.cup_cake.PickupFragment"
android:label="fragment_pickup"
tools:layout="@layout/fragment_pickup" />
</navigation>