精华内容
下载资源
问答
  • Toast为应用操作提供了一种简单的反馈机制,它是一个小型的弹出窗口……A toast provides simple feedback about an operation in a small popup. It only fills the amount of space required for the mess...

    66b52468c121889b900d4956032f1009.png

    8种机械键盘轴体对比

    本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

    Toast为应用操作提供了一种简单的反馈机制,它是一个小型的弹出窗口……A toast provides simple feedback about an operation in a small popup. It only fills the amount of space required for the message and the current activity remains visible and interactive. For example, navigating away from an email before you send it triggers a “Draft saved” toast to let you know that you can continue editing later. Toasts automatically disappear after a timeout.

    Toast为应用操作提供了一种简单的反馈机制,它是一个小型的弹出窗口,只占用足够其显示消息内容的空间,而不影响当前activity的可见与交互。例如,它会在你退出未发送的邮件时,触发一条内容为”draft saved”的toast提示你能稍后继续编辑这条邮件。toast会自动在超时后消失。

    871b843ce21253ef180e4842883788e7.pngIf user response to a status message is required, consider instead using a Notification.

    如果需要用户回馈一个状态消息,可以考虑使用notification。

    The Basics基本用法First, instantiate a Toast object with one of the makeText() methods. This method takes three parameters: the application Context, the text message, and the duration for the toast. It returns a properly initialized Toast object. You can display the toast notification with show(), as shown in the following example:

    首先,你需要用maketext()方法来实例化一个toast对象,这个方法有三个参数:应用的context,需要显示的文本消息,和需要显示的时间。它的返回值是一个实例化的toast对象。用show()方法来显示。如下所示:

    Context context = getApplicationContext();

    CharSequence text = "Hello toast!";

    int duration = Toast.LENGTH_SHORT;

    Toast toast = Toast.makeText(context, text, duration);

    toast.show();This example demonstrates everything you need for most toast notifications. You should rarely need anything else. You may, however, want to position the toast differently or even use your own layout instead of a simple text message. The following sections describe how you can do these things.

    You can also chain your methods and avoid holding on to the Toast object, like this:

    这个示例展示了绝大多数toast所需要的一切,你几乎不需要其他的了。然后,你或许想指定toast需要显示的位置,或者自定义toast的布局样式,接下来的部分将描述如何使用它们。

    你也可以链接这些方法来避免在内存里保留一个toast对象:

    Toast.makeText(context, text, duration).show();

    Positioning your Toast 指定toast的位置A standard toast notification appears near the bottom of the screen, centered horizontally. You can change this position with the setGravity(int, int, int) method. This accepts three parameters: a Gravity constant, an x-position offset, and a y-position offset.

    For example, if you decide that the toast should appear in the top-left corner, you can set the gravity like this:

    一个标准的toast出现在靠近屏幕下方垂直居中的位置。你可以使用setGravity(int, int, int)方法改变他的位置,这个方法有3个参数。一个gravity常量,一个x轴偏移量,和一个y轴偏移量。

    例如,如果你想让一个toast出现在屏幕的右上角。你可以这么设置参数:

    toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);If you want to nudge the position to the right, increase the value of the second parameter. To nudge it down, increase the value of the last parameter.

    如果你想向右移动位置,增加第二个参数的值;向下移动位置,增加第三个参数的值

    Creating a Custom Toast View 创建一个自定义的Toast视图If a simple text message isn’t enough, you can create a customized layout for your toast notification. To create a custom layout, define a View layout, in XML or in your application code, and pass the root View object to the setView(View) method.

    For example, you can create the layout for the toast visible in the screenshot to the right with the following XML (saved as toast_layout.xml):

    如果一个简单的文本消息无法满足需求。你可以为你的toast指定一个布局。创建一个自定义布局,你需要定义一个xml布局文件。并且调用setView(View)方法。将根节点view当做参数传递给它。

    例如,你可以用下面的代码为toast创建一个布局文件(保存为toast_layout.xml):

    android:id="@+id/toast_layout_root"

    android:orientation="horizontal"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:padding="8dp"

    android:background="#DAAA"

    >

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_marginRight="8dp"

    />

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:textColor="#FFF"

    />

    Notice that the ID of the LinearLayout element is “toast_layout_root”. You must use this ID to inflate the layout from the XML, as shown here:

    注意这个LinearLayout元素的ID是“toast_layout_root”.你需要使用这个ID去膨胀这个布局,如下所示:

    LayoutInflater inflater = getLayoutInflater();

    View layout = inflater.inflate(R.layout.custom_toast,

    (ViewGroup) findViewById(R.id.toast_layout_root));

    TextView text = (TextView) layout.findViewById(R.id.text);

    text.setText("This is a custom toast");

    Toast toast = new Toast(getApplicationContext());

    toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);

    toast.setDuration(Toast.LENGTH_LONG);

    toast.setView(layout);

    toast.show();First, retrieve the LayoutInflater with getLayoutInflater() (or getSystemService()), and then inflate the layout from XML using inflate(int, ViewGroup). The first parameter is the layout resource ID and the second is the root View. You can use this inflated layout to find more View objects in the layout, so now capture and define the content for the ImageView and TextView elements. Finally, create a new Toast with Toast(Context) and set some properties of the toast, such as the gravity and duration. Then call setView(View) and pass it the inflated layout. You can now display the toast with your custom layout by calling show().

    首先,调用getLayoutInflater()或者getSystemService()方法获得LayoutInflater对象,然后用inflate(int, ViewGroup)方法膨胀这个布局,第一个参数是需要膨胀的的XML布局ID,第二个参数是父视图。你可以得到这个膨胀过的layout里的其他视图对象。现在,得到并设置ImageView和TextView的内容。最后,用构造方法Toast(Context)创建一个toast对象,并且设置一些所需的属性例如位置,时长,然后调用setView(View)方法并将膨胀后的layout当做参数传递给它。现在你可以调用show()方法来显示你自定义的toast了Note: Do not use the public constructor for a Toast unless you are going to define the layout with setView(View). If you do not have a custom layout to use, you must use makeText(Context, int, int) to create the Toast.

    注意:除非你打算用setView(View)方法来来定义Toast的布局,否则请勿使用toast的公共构造方法创建一个Toast。如果你没有自定义Toast的布局,请务必使用makeText(Context, int, int)方法来创建一个Toast。

    展开全文
  • Cheers、Bottom up, toast都是干杯,但你知道吗?它们用法不一样。怎么在不同社交场合说出得体又道地的英文,让你更自在,更自信,又更受欢迎!1、举杯祝贺/干杯Cheers! / Make a toast! / Bottoms up! 这三句英文...

    Cheers、Bottom up, toast都是干杯,但你知道吗?它们用法不一样。怎么在不同社交场合说出得体又道地的英文,让你更自在,更自信,又更受欢迎!

    824e6d104557d9bf5f994a5ec7c798e0.png

    1、举杯祝贺/干杯

    Cheers! / Make a toast! / Bottoms up! 这三句英文都有「干杯」的意思,有什么不同?何时说?

    情境对话:

    A, “I would like to make a toast to the newly weds. Cheers to you both!”

    B, ”Cheers!”

    A, “Bottoms up!”

    A:「来向这对新人举杯!大家干杯!」

    B:「干杯!」(喝吧!)

    A:「干杯!」(干杯)

    Cheers(喝吧!)其实也是年轻人很常用的用语,多半说这话时,是叫大家举杯。喝吧!而toast则是比较有正式的举杯祝贺,可以用make a toast或propose a toast。

    Bottoms up! 则是很豪爽地,一饮而尽,是名副其实的「干杯」了。注意这里的buttom是复数,因为大家都干,好多个杯子。

    7b1ffde2abedadaa04f087a895639d7e.png

    2、祝贺/恭喜

    Congratulations!(恭喜!)

    Happy anniversary! ((结婚) 周年快乐!)

    Congrats on your new job!(恭喜你找到新工作!)

    * Congratulations ,注意要用复数,它的缩写也用复数congrats搭配介系词on,后面再加上要祝贺对方的内容。

    e7aace215712a3a833c2ae2dec1d8287.png

    3、慰问/安慰

    Bless you! (God bless you!) (保重!祝福你!)

    R.I.P. (Rest in peace.) (安息!)

    情境对话:

    A, “Atchoo! Atchoo!”

    B, “Bless you!”

    A, “Thank you.”

    A:「(打喷嚏声)」

    B:「保重!」

    A:「谢谢」

    d4efc3d596e56c2646758c5724eef865.png

    4、上台表演前/后

    Break a leg!((祝) 演出顺利!)

    Bravo! / You rock! / You are the star!(赞!/你太棒了!)

    除了这祝贺/慰问用语,出席社交场合,还要注意些什么再继续与人交谈呢?营造愉悦的(聊天)环境、问对适切的问题。这已经可以再写一篇文章了。

    展开全文
  • 一般我们都把Toast当做一个UI控件在主线程显示。但是有时候非想在子线程中显示Toast,就会使用Handler切换到主线程显示。但是子线程中真的不能直接显示Toast吗?答案是:当然可以。那应该怎么操作呢?在当前线程中先...

    一般我们都把Toast当做一个UI控件在主线程显示。但是有时候非想在子线程中显示Toast,就会使用Handler切换到主线程显示。

    但是子线程中真的不能直接显示Toast吗?

    答案是:当然可以。

    那应该怎么操作呢?在当前线程中先初始化一个Looper即可!

    Looper.prepare();

    Toast.makeText(getBaseContext(), "text", Toast.LENGTH_LONG).show();

    Looper.loop();

    为什么在子线程中使用Toast需要初始一个Looper呢? 我们看看源代码:

    public static Toast makeText(Context context, CharSequence text, @Duration int duration) {

    return makeText(context, null, text, duration);

    }

    public static Toast makeText(@NonNull Context context, @Nullable Looper looper,

    @NonNull CharSequence text, @Duration int duration) {

    Toast result = new Toast(context, looper);

    ...

    return result;

    }

    以上是我们使用Toast时调用的静态方法,可以看到第二个方法有个参数Looper,虽然我们平时用的时候都传入的是null,那这个Looper究竟有什么用呢?我们看看Toast的构造函数:

    public Toast(@NonNull Context context, @Nullable Looper looper) {

    mContext = context;

    mTN = new TN(context.getPackageName(), looper);

    }

    可以看出这个Looper其实是TN在用,我们看看它的构造函数:

    TN(String packageName, @Nullable Looper looper) {

    if (looper == null) {

    // Use Looper.myLooper() if looper is not specified.

    looper = Looper.myLooper();

    if (looper == null) {

    throw new RuntimeException(

    "Can't toast on a thread that has not called Looper.prepare()");

    }

    }

    }

    以上代码有简化。可以看出当Looper为null的时候,会通过Looper.myLooper获取一个当前的Looper。我们知道在主线程中系统已经为我们初始化了一个mainLooper,所以我们一般不用管。但是当我们子线程中如果没有初始化Looper,这里调用Looper.myLooper就获取不到一个Looper,则会抛出异常。所以当我们在子线程中使用Toast,使用Looper.prepare()方法初始化一个Looper并用Looper.loop()让它启动起来即可。

    所以我们可以封装一个可以在任何线程使用的Toast。

    private static Toast toast = null;

    public static void showToast(Context context, String text) {

    Looper myLooper = Looper.myLooper();

    if (myLooper == null) {

    Looper.prepare();

    myLooper = Looper.myLooper();

    }

    if (toast == null) {

    toast = Toast.makeText(context, text, Toast.LENGTH_LONG);

    toast.setGravity(Gravity.CENTER, 0, 0);

    }

    toast.show();

    if ( myLooper != null) {

    Looper.loop();

    myLooper.quit();

    }

    }

    我们初始化Toast之前先判断当前线程的looper是否为空,为空则初始化一个新的myLooper,然后在调用Toast的show方法之后让looper启动起来即可。因为Looper的loop()方法是无限循环的,为了防止Looper阻塞线程,导致内存泄漏应该及时退出Looper。

    写在最后

    615141.html

    展开全文
  • toast为什么要叫toast

    2016-03-17 03:03:11
    android中的toast,为什么要叫toast? 来源是什么
  • vue toast_TOAST Vue的UI编辑器

    千次阅读 2020-07-27 23:28:38
    vue toast toast-ui.vue编辑器 (toast-ui.vue-editor) This is Vue component wrapping TOAST UI Editor. 这是包装TOAST UI Editor的Vue组件。 View Demo 查看演示 Download Source 下载源 收集有关开源使用的...

    vue toast

    toast-ui.vue编辑器 (toast-ui.vue-editor)

    This is Vue component wrapping TOAST UI Editor.

    这是包装TOAST UI Editor的Vue组件。

    tui.editor

    收集有关开源使用的统计信息 (Collect statistics on the use of open source)

    Vue Wrapper of TOAST UI Editor applies Google Analytics (GA) to collect statistics on the use of open source, in order to identify how widely TOAST UI Editor is used throughout the world. It also serves as important index to determine the future course of projects. location.hostname (e.g. > “ui.toast.com") is to be collected and the sole purpose is nothing but to measure statistics on the usage. To disable GA, use the following usageStatistics options when declare Vue Wrapper compoent.

    TOAST UI Editor的Vue Wrapper应用Google Analytics(分析)(GA)来收集有关开源使用情况的统计信息,以便确定TOAST UI Editor在全世界的使用范围。 它也是确定项目未来走向的重要指标。 要收集location.hostname(例如>“ ui.toast.com”),其唯一目的只是测量使用情况统计信息。要禁用GA,请在声明Vue Wrapper usageStatistics时使用以下usageStatistics选项。

    var options = {
        ...
        usageStatistics: false
    }

    Or, include include tui-code-snippet.js (v1.4.0 or later) and then immediately write the options as follows:

    或者,包括include tui-code-snippet.js ( v1.4.0更高版本 ),然后立即编写以下选项:

    tui.usageStatistics = false;

    💾安装 (💾 Install)

    使用npm (Using npm)

    npm install --save @toast-ui/vue-editor

    🔨用法 (🔨 Usage)

    If you want to more details, see Tutorials 👀

    如果您想了解更多详细信息,请参见教程 👀

    加载 (Load)

    You can use Toast UI Editor for Vue as moudule format or namespace. Also you can use Single File Component (SFC of Vue). When using module format and SFC, you should load tui-editor.css, tui-editor-contents.css and codemirror.css in the script.

    您可以将Toast UI Editor for Vue用作模块格式或名称空间。 您也可以使用单一文件组件(Vue的SFC)。 使用模块格式和SFC时,应在脚本中加载tui-editor.csstui-editor-contents.csscodemirror.css

    • Using Ecmascript module

      使用Ecmascript模块

      import 'tui-editor/dist/tui-editor.css';
      import 'tui-editor/dist/tui-editor-contents.css';
      import 'codemirror/lib/codemirror.css';
      import { Editor } from '@toast-ui/vue-editor'
    • Using Commonjs module

      使用Commonjs模块

      require('tui-editor/dist/tui-editor.css');
      require('tui-editor/dist/tui-editor-contents.css');
      require('codemirror/lib/codemirror.css');
      var toastui = require('@toast-ui/vue-editor');
      var Editor = toastui.Editor;
    • Using Single File Component

      使用单个文件组件

      import 'tui-editor/dist/tui-editor.css';
      import 'tui-editor/dist/tui-editor-contents.css';
      import 'codemirror/lib/codemirror.css';
      import Editor from '@toast-ui/vue-editor/src/editor.vue'
    • Using namespace

      使用名称空间

      var Editor = toastui.Editor;

    实行 (Implement)

    First implement <editor/> in the template.

    首先在模板中实现<editor/>

    <template>
        <editor/>
    </template>

    And then add Editor to the components in your component or Vue instance like this:

    然后添加Editorcomponents在组件或VUE实例是这样的:

    import { Editor } from '@toast-ui/vue-editor'
    
    export default {
      components: {
        'editor': Editor
      }
    }

    or

    要么

    import { Editor } from '@toast-ui/vue-editor'
    new Vue({
        el: '#app',
        components: {
            'editor': Editor
        }
    });

    使用v模型 (Using v-model)

    If you use v-model, you have to declare a data for binding.

    如果使用v-model,则必须声明要绑定的data

    In the example below, editorText is binding to the text of the editor.

    在下面的示例中, editorText绑定到编辑器的文本。

    <template>
        <editor v-model="editorText"/>
    </template>
    <script>
    import { Editor } from '@toast-ui/vue-editor'
    
    export default {
      components: {
        'editor': Editor
      },
      data() {
          return {
              editorText: ''
          }
      }
    }
    </script>

    道具 (Props)

    NameTypeDefaultDescription
    valueString''This prop can change content of the editor. If you using v-model, don't use it.
    optionsObjectfollowing defaultOptionsOptions of tui.editor. This is for initailize tui.editor.
    heightString'300px'This prop can control the height of the editor.
    previewStyleString'tab'This prop can change preview style of the editor. (tab or vertical)
    modeString'markdown'This prop can change mode of the editor. (markdownor wysiwyg)
    htmlString-If you want change content of the editor using html format, use this prop.
    visibleBooleantrueThis prop can control visible of the eiditor.
    名称 类型 默认 描述
    '' 该道具可以改变编辑器的内容。 如果您使用v-model ,请不要使用它
    选项 目的 以下defaultOptions tui.editor的选项。 这是为了使tui.editor无效。
    高度 '300px' 该道具可以控制编辑器的高度。
    PreviewStyle '标签' 该道具可以改变编辑器的预览风格。 ( tabvertical )
    模式 '降价' 该道具可以改变编辑器的模式。 ( markdownwysiwyg )
    html -- 如果要使用html格式更改编辑器的内容,请使用此道具。
    可见 布尔型 真正 该道具可以控制看守者。
    const defaultOptions = {
        minHeight: '200px',
        language: 'en_US',
        useCommandShortcut: true,
        useDefaultHTMLSanitizer: true,
        usageStatistics: true,
        hideModeSwitch: false,
        toolbarItems: [
            'heading',
            'bold',
            'italic',
            'strike',
            'divider',
            'hr',
            'quote',
            'divider',
            'ul',
            'ol',
            'task',
            'indent',
            'outdent',
            'divider',
            'table',
            'image',
            'link',
            'divider',
            'code',
            'codeblock'
        ]
    };

    事件 (Event)

    • load : It would be emitted when editor fully load

      load:编辑器完全加载时会发出

    • change : It would be emitted when content changed

      change:内容更改时会发出

    • stateChange : It would be emitted when format change by cursor position

      stateChange:通过光标位置更改格式时将发出

    • focus : It would be emitted when editor get focus

      focus:当编辑器获得焦点时将发出

    • blur : It would be emitted when editor loose focus

      模糊:当编辑器失去焦点时会发出

    方法 (Method)

    If you want to more manipulate the Editor, you can use invoke method to call the method of tui.editor. For more information of method, see method of tui.editor.

    如果要更多地操纵编辑器,则可以使用invoke方法来调用tui.editor方法。 有关method的更多信息,请参见tui.editor的method

    First, you need to assign ref attribute of <editor/> and then you can use invoke method through this.$refs like this:

    首先,您需要分配<editor/> ref属性,然后可以通过this.$refs使用invoke方法,如下所示:

    <template>
        <editor ref="tuiEditor"/>
    </template>
    <script>
    import { Editor } from '@toast-ui/vue-editor'
    
    export default {
        components: {
            'editor': Editor
        },
        methods: {
            scroll() {
                this.$refs.tuiEditor.invoke('scrollTop', 10);
            },
            moveTop() {
                this.$refs.tuiEditor.invoke('moveCursorToStart');
            },
            getHtml() {
                let html = this.$refs.tuiEditor.invoke('getHtml');
            }
        }
    };
    </script>

    🔧拉取步骤 (🔧 Pull Request Steps)

    TOAST UI products are open source, so you can create a pull request(PR) after you fix issues. Run npm scripts and develop yourself with the following process.

    TOAST UI产品是开源的,因此您可以在解决问题后创建提取请求(PR)。 运行npm脚本并通过以下过程开发自己。

    建立 (Setup)

    Fork develop branch into your personal repository. Clone it to local computer. Install node modules. Before starting development, you should check to haveany errors.

    develop分支develop到您的个人存储库中。 克隆到本地计算机。 安装节点模块。 在开始开发之前,您应该检查是否有任何错误。

    $ git clone https://github.com/{your-personal-repo}/[[repo name]].git
    $ cd [[repo name]]
    $ npm install

    翻译自: https://vuejsexamples.com/toast-ui-editor-for-vue/

    vue toast

    展开全文
  • ionic3封装自定义Toast(添加图标)

    千次阅读 2018-03-05 19:49:46
    Toast中文翻译如果想往Toast里加点其他东西呢?看到一些实现:1.修改源码2.引入其他库(来自晴天大佬:https://www.jianshu.com/p/17ab4003fa18)出于学习,我自己封装了一下,自己封装的更自由,想怎么改就怎么改。...
  • 前言  本章内容是android.widget.Toast,版本为Android 2.2 r1,翻译来自"cnmahj"和"jiahuibin",欢迎大家访问他的博客:http://p.toolib.com/step...欢迎你一起参与Android API 的中文翻译,联系我over140@gmail....
  • Android学习之Toast的自定义_标题栏的隐藏
  • UI----Toast总结

    2015-02-14 01:58:53
    一: Toast 适用场景、... Toast 中文翻译为土司,用于提示一条简单的信息。  特点:  1.Toast不会获取焦点,并且是非模态的,如果需要进行用户交互,那么可以考虑Dialog。  2.Toast有固定显示时间,会自动消失。
  • Android Toast用法

    千次阅读 2011-12-15 18:38:48
    Android Toast用于在手机屏幕上向用户显示一条信息,一段时间后信息会自动消失。信息可以是简单的文本,也可以是复杂的图片及其他内容(显示一个view)。   1.简单用法 Toast.makeText(midlet.getApplica
  • 学习通英语课测试或点名提问翻译 实现 百度api 注册个百度翻译api接口,百度翻译api官网, 创建app,选择通用翻译,记录appid和密钥 通过autojs调用百度api 代码: //填入appid、key、query var appid = ...
  • 原文Toast是应用中常用的微妙(subtle )通知。它用于提示有关操作的反馈或显示系统消息。Toast显示在app内容的顶部(覆盖内容),app可以将其关闭,以恢复用户与app的交互。1.创建toast的所有选项都应该在create...
  • Android 百度翻译API(详细步骤+源码)

    千次阅读 多人点赞 2020-11-26 17:33:01
    百度翻译API一、创建平台应用二、创建及配置项目三、编码1. 修改外观与布局2. 初始化控件3. 输入框监听4. 语言选择监听5. 页面点击事件6. 翻译 一、创建平台应用   百度翻译开放平台也是属于百度智能云的一部分,...
  • 前言 本章内容为Android开发者指南的 Framework Topics/User Interface/Notifications/Toast Notifications章节,译为"媒体播放",版本为Android 4.0 r1,翻译来自:"呆呆大虾",欢迎访问他的...
  • (转)Android Toast用法

    2011-03-30 13:28:51
    Android Toast用于在手机屏幕上向用户显示一条信息,一段时间后信息会自动消失。信息可以是简单的文本,也可以是复杂的图片及其他内容(显示一个view)。   1.简单用法 Toast.makeText(midlet....
  • 说明:由于使用的是模拟器演示,没有设置输入中文,就只能看到翻译英文。需要说明的是,我没有设置搜索按钮,就通过设置键盘的回车键来搜索了。说明:这张是手机真机截图,为了看翻译中文的效果。二、需要在有道上面...
  • Rust中文社区翻译小组招募 #activity #RustChina 首批任务:Rust官网翻译 这里有详细说明 https://github.com/rust-lang/www.rust-lang.org/blob/master/TRANSLATIONS.md 欢迎加入Rust翻译小组参与,QQ群聊号码:...
  • 《Kotlin for android developers》中文翻译 错别字、病句、翻译错误等问题可以提issues。请说明错误原因。 在线阅读或下载GitBook 在线阅读 希望大家购买正版,建议阅读英文原版:...
  • 友情提示:阅读本文或者查阅本文时请活用Command+F搜索功能。 Module Explanation Explanation(Chinese) ...Manage A10 Networks AX/SoftAX/Thunder/vThunder devices' server object. ...Manage A10 Netwo...
  • LVGL中文手册

    千次阅读 2020-09-30 20:51:15
    LVGL(轻度综合图形界面库)作为一个免费开源图形库...其实在一开始我本来不想翻译 的,但是用到了 lvgl 时,就顺便翻译了,现在 lvgl 是 7.4.0 版本了吧,如果下方翻译的不好,请不要骂我。 在公众号回复LVGL。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,482
精华内容 992
关键字:

toast的中文翻译