Android开发中关于Ui的语法糖

这篇具有很好参考价值的文章主要介绍了Android开发中关于Ui的语法糖。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、layout_margin和padding

android:layout_margin=“10dp”,android:padding="10dp"区别

  1. android:layout_margin="10dp"

    • 适用对象:用于调整 View 与其父容器或相邻 View 之间的距离,即外边距(margin)。
    • 效果:设置该属性后,View 与其父容器或相邻 View 之间会产生一定的间隔,增加 View 之间的距离。
  2. android:padding="10dp"

    • 适用对象:用于控制 View 内部内容与 View 边界之间的距离,即内边距(padding)。
    • 效果:设置该属性后,View 内部内容(如 TextView 中的文本、ImageView 中的图片等)与 View 边界之间会产生一定的间隔,从而使 View 内部的内容离边界有一定距离。
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:background="@color/blue">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello World"
            android:padding="10dp"
            android:background="@color/orange" />
    </LinearLayout>
    

二、android:visibility可见与不可见

所有的Android控件都具有这个属性,可以通过android:visibility 进行指定,可选值有3种:visibleinvisiblegone

visible表示控件是可见的,这个值是默认值,不指定android:visibility时,控件都是可见的。

invisbale 表示控件不可见,但是它仍然占据着原来的位置和大小,可以理解成控件变成透明状态了。

gone 则表示控件不仅不可见,而且不再占用任何屏幕空间。

我们还可以通过代码来设置控件的可见性,使用的是setVisibility()方法,可以传入View.VISIBLEView.INVISIBLEView.G0NE这3种值。

三、android:ellipsize文本的缩略方式

当文本超出控件的宽度时,文本的缩略方式。

android:ellipsize属性可以设置以下几种值:

  1. none: 默认值,不做省略处理,当文本超过TextView的宽度时,会自动换行显示文本。
  2. start: 在文本的开头处进行省略,保留文本的末尾部分。
  3. middle: 在文本的中间处进行省略,保留文本的开头和末尾部分。
  4. end: 在文本的末尾处进行省略,默认情况下,超过TextView宽度的文本会在末尾处用省略号表示。
  5. marquee: 当文本过长时,使用水平滚动来显示文本,类似于跑马灯效果。需要设置android:singleLine="true"android:scrollHorizontally="true"属性。文本将以水平滚动的方式显示,并且会不断滚动直到文本完全展示或用户将焦点移出TextView。

四、onActivityCreated弃用后的替代方案

谷歌为了管理Fragment的生命周期,实现了 LifecycleOwner,暴露了一个Lifecycle你可以通过getLifecycle() 方法访问的对象 。

​ 因为onActivityCreated()是宿主Activity的onCreate()之后立即调用,所以可以在onAttach的时候,通过订阅Activitylifecycle来获取ActivityonCreate()事件,记得要removeObserver

现在,官方推荐使用Fragment#onViewCreated()方法来替代onActivityCreated()onViewCreated()方法在Fragment的视图层次结构被创建后立即调用,通常用于初始化Fragment的UI元素和执行与UI相关的逻辑。在onViewCreated()方法中,你可以安全地进行与视图相关的操作,而无需担心Activity的创建状态。

例如:

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        if(getActivity().findViewById(R.id.news_context_layout) !=null){
            isTwoPane = true; //双页模式
        }else{
            isTwoPane = false; //单页模式
        }
    }

替换为;

@Override
public void onViewStateRestored(@Nullable Bundle savedInstanceState) {
    super.onViewStateRestored(savedInstanceState);
    if(getActivity().findViewById(R.id.news_context_layout) !=null){
        isTwoPane = true; //双页模式
    }else{
        isTwoPane = false; //单页模式
    }
}

四、requireActivity在Fragment中与之关联的 Activity

requireActivity()

  • 这是 Fragment 中的一个方法,用于获取与当前 Fragment 关联的 Activity 实例。
  • 在 Fragment 中,可以通过 requireActivity() 方法来获取与之关联的 Activity,而无需担心 Activity 是否为 null。这个方法会确保在 Fragment 的生命周期内获取有效的 Activity 实例。
NewsContentFragment newsContentFragment = (NewsContentFragment) requireActivity().getSupportFragmentManager().findFragmentById(R.id.news_context_fragment);

五、设置输入框光标位置setSelection

str = "123"
editText.setSelection(str.lenth());

editText.setSelection(str.length());: 这将设置文本输入框中的光标位置。在这里,光标将被放置在文本的末尾,即最后一个字符之后。

六、修改图片大小

1、设置属性android:scaleType

android:scaleType值的意义区别:

  • CENTERcenter: 图片大小不变,居中显示,当图片长/宽超过View的长/宽,截取图片居中部分显示。
  • CENTER_CROPcenterCrop: 按比例扩大图片的size居中显示,使得图片长(宽)大于等于View的长(宽)。
  • CENTER_INSIDEcenterInside: 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽。
  • FIT_CENTERfitCenter: 按比例缩放图片到视图的最小边,居中显示。
  • FIT_ENDfitEnd: 按比例缩放图片到视图的最小边,显示在视图的下部分位置。
  • FIT_STARTfitStart: 把图片按比例缩放到视图的最小边,显示在视图的上部分位置。
  • FIT_XYfitXY: 把图片不按比例缩放到View的大小显示。
  • MATRIXmatrix: 用矩阵来绘制。

五、限制或者指定输入内容

android:inputType是一个用于控制EditText输入类型的属性。它定义了用户在EditText中可以输入的内容类型,以及输入时的键盘布局和行为。android:inputType的值可以是一个或多个常量的组合,用逗号分隔。

除了"text"之外,还有其他一些可能的android:inputType值,用于限制输入的内容类型,例如:文章来源地址https://www.toymoban.com/news/detail-717941.html

  • textPassword: 输入密码,文本将被遮蔽以保护隐私。
  • number: 输入数字。
  • phone: 输入电话号码。
  • emailAddress: 输入电子邮件地址。
  • date: 输入日期。
  • 等等…

到了这里,关于Android开发中关于Ui的语法糖的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android TV UI开发常用知识

    Google官方为Android TV的UI开发提供了一系列的规范组件,在leanback的依赖库中,这里介绍一些常用的组件,使用前需要导入leanback库。 这些Fragment有设计好的样式,只需要根据场景选择对应的Fragment,并往里面填充内容即可。 可以理解为一个水平的tab页面。左边是tab,右边是ta

    2024年02月07日
    浏览(43)
  • Android开发-UI界面--类微信页面设计

    一、功能说明 二、开发技术 ​ 本次用到了 layout.xml、控件、监听、fragment layout(布局) ​ 定义了用户界面的可视化结构,主要有4种布局: ConstrainLayout (约束布局):一个使用“相对定位”灵活地确定微件的位置和大小的一个布局 LinearLayout (线性布局):按照水平或垂直

    2024年02月10日
    浏览(41)
  • Android开发的UI设计——Material Design

    Material Design 是用于指导用户在各种平台和设备上进行视觉、动作和互动设计的全面指南。如需在您的 Android 应用中使用 Material Design,请遵循 Material Design 规范中定义的准则,并使用 Material Design 支持库中提供的新组件和样式。 安卓中的Material Design 作为Google旗下的一员——

    2024年02月13日
    浏览(39)
  • Android MVI架构之UI开发指南

    在整个应用程序架构中,UI层并不是唯一的层级。除了UI层之外,您还可以找到数据层,有时还有领域层。根据Android架构文档: UI层在屏幕上显示数据。 数据层暴露应用程序数据,并包含大部分业务逻辑。 领域层是一个可选的层,旨在简化和重用UI层的潜在业务逻辑复杂性。

    2024年02月03日
    浏览(42)
  • 安卓开发 微信ui界面设计 (Android Studio)

    功能: 开发一个类似微信的主页面框架,UI布局为上中下结构,包含4个tab界面: 开发技术为: layout xml、控件、监听,fragment; 设计流程: 创建项目 改下项目名,编程语言为java UI界面 UI界面由多个xml组成,头部标题为微信,中间留空白,底部分为四个(微信,联系人,发现,

    2024年02月15日
    浏览(63)
  • 第一行代码Android----阅读笔记(UI开发_1)

            在过去,Android应用程序的界面主要是通过编写XML的方式来实现的。写XML的好处是,不仅能够了解界面背后的实现原理,而且编写出来的界面还可以具备很好的屏幕适配性。         不过最近几年,Google又推出了一个全新界面布局: ConstraintLayout 。和以往传统的布局

    2024年01月25日
    浏览(45)
  • Android开发详解:第3章《App UI 设计》

    View View类在Android中可以理解为视图。它占据屏幕上的一个矩形区域,负责提供控件绘制和事件处理的方法。如果把Android界面比喻成窗户,那么每块玻璃都是一个view,View类是所有UI控件。 View类位于android.view包中;文本框控件TextView是View类的子类,位于android.widget包中。 在A

    2024年02月04日
    浏览(51)
  • Android架构进阶之高级UI系列(精编解析,值得收藏),Android开发面试技能介绍

    CallbackRecord callbacks; synchronized (mLock) { final long now = System.nanoTime(); // 根据指定的类型CallbackkQueue中查找到达执行时间的CallbackRecord callbacks = mCallbackQueues[callbackType].extractDueCallbacksLocked( now / TimeUtils.NANOS_PER_MS); if (callbacks == null) { return; } mCallbacksRunning = true; if (callbackType == Choreograph

    2024年04月13日
    浏览(42)
  • 【Android -- UI 开发】RecyclerView 侧滑菜单(侧滑删除) 开源库

    不断学习,做更好的自己 !💪 侧滑菜单确实是一个比较常见的功能,其中场景较多的就是侧滑删除,它是iOS列表删除通用交互方式,比如微信、QQ、苹果自带的短信、通讯录列表等,都有侧滑删除功能。由于国内Android、iOS通常都是一套设计,因次,Android端怎么能少得了这个

    2023年04月21日
    浏览(79)
  • UI界面开发- android studio搭建类微信界面

    目录 1.实验目的 2.开发过程 一、界面框架设计思路 Ⅰ:顶部标题区域top.xml Ⅰ:底部功能选择区域botten.xml Ⅲ:中间显示区域  ①:创建不同的Fragment.java及layout ②:activity_main.xml整体框架搭建​编辑 ③:实现Fragment的隐藏和显示         1.在主函数中定义控件         2.定

    2024年02月06日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包