小编And*_*uIO的帖子

如何在Jetpack中使用导航启动第二个活动

你知道它现在是正式的:谷歌正式推荐单一活动应用程序架构.但这里有一种困难.我们有各种活动.所以,当我想用​​多个活动实现导航时,但我失败了.

他们说:如果多个活动共享相同的布局,则可以组合导航图,将导航调用替换为活动目标,以直接在两个导航图之间导航调用.在这里

所以我创造了这个:

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:startDestination="@+id/nav_graph_firstActvity">

<activity
    android:id="@+id/nav_graph_firstActvity"
    android:name="io.androidedu.FirstActivity"
    android:label="First Activity">

    <action
        android:id="@+id/nav_graph_actFirstActvity"
        app:destination="@id/nav_graph_secondActvity" />
</activity>

<activity
    android:id="@+id/nav_graph_secondActvity"
    android:name="io.androidedu.SecondActivity"
    android:label="Second Activity" />
Run Code Online (Sandbox Code Playgroud)

之后我在这里找不到任何多个活动的样本. 有一些样本:

Navigation.findNavController(view).navigate(R.id.nav_graph_actFirstActvity)
Run Code Online (Sandbox Code Playgroud)

但是findNavController()等待一个视图,而不是一个活动.

我怎么能解决这个问题呢?

android android-architecture-components android-jetpack android-architecture-navigation

12
推荐指数
1
解决办法
5953
查看次数

如何为每个路径元素分别定义点击事件

我正在 Android 上处理 SVG 文件。Android Studio 将 SVG 文件转换为包含矢量和路径元素的 XML 文件。一个 XML 文件可以有多个“路径”元素。问题就从这里开始。我想让每个路径元素能够在不使用 webview 的情况下单独单击。(javascript 的原因是有风险的!)有没有办法做到这一点?

我不能使用点击像素颜色。因为它们变化很大。我可以将每个路径元素分离到不同的 XML 文件。但是这条路径也会记住它们所在的位置。当我想将每个 XML 文件添加到 FrameLayout 中时,它们将矩形边缘扩展到手机边缘。即使他们在 width 和 height 属性中有 wrap_content .. 所以 onClick 事件被阻止。onClick 事件只有一个。您可以检查照片中的蓝色边缘。每个图像视图的蓝色边缘都相同:

在此处输入图片说明

<?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:srcCompat="@drawable/path_one" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:srcCompat="@drawable/path_two" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:srcCompat="@drawable/path_three" />
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

路径一:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="800dp"
    android:height="340dp"
    android:viewportHeight="340"
    android:viewportWidth="800">
    <path
        android:fillAlpha="1"
        android:fillColor="#da241c"
        android:pathData="M52.39,44.01L54.63,41.94L57.68,42.54L64.66,41.57L66.41,42.87L67.51,45.88L72.34,49.65L75.51,48.5L78.38,45.54L80.04,39.15L82.2,37.29L88.55,34.96L92.09,34.57L100.5,29.58L100.87,28.25L102.52,28.39L102.52,28.39L103.01,29L103.01,29L99.86,44.65L97.47,48.72L97.49,51.15L95.74,54.66L95.58,57.53L96.47,59.49L96.47,59.49L94.92,62.8L91.57,62.71L86.49,60.02L76.48,62.25L74.69,65.68L74.09,69.27L69.49,73.59L67.58,77.44L62.61,81.12L57.04,82.69L54.94,84.99L52.22,85.67L52.22,85.67L52.17,82.72L55.49,74.92L52.38,73.87L46.42,74.15L46.42,74.15L42.46,68.99L43.56,60.73L41.5,58.83L42.36,57.78L46.69,57.12L50.78,53.06L53.17,48.89z"
        android:strokeAlpha="1"
        android:strokeColor="#FFFFFF"
        android:strokeWidth="0.5" />
</vector>
Run Code Online (Sandbox Code Playgroud)

路径二:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="800dp"
    android:height="340dp" …
Run Code Online (Sandbox Code Playgroud)

svg android android-vectordrawable

8
推荐指数
2
解决办法
2286
查看次数