android– 理解View.setTranslationY()[ X()]

android– 理解View.setTranslationY()[ X()],第1张

概述正如标题所说,我想了解该方法到底在做什么.我已经仔细检查了android的坐标系是这样的:coordinatesystem二级–请花一点时间检查我的androidstudio屏幕,方法快速doc.为什么我的观点(点击后)的价值是106?androidscreen解决方法:坐标系是正确的.getY()将返回ViewY转换顶部的值

正如标题所说,我想了解该方法到底在做什么.

我已经仔细检查了android的坐标系是这样的:
coordinate system

二级 – 请花一点时间检查我的androID studio屏幕,方法快速doc.为什么我的观点(点击后)的价值是106?
android screen

解决方法:

坐标系是正确的.

getY()将返回VIEw Y转换顶部的值.所以,如果getY()返回106并且您将平移y设置为10,则视图的顶部应为96.尝试调用gettop()并检查该值是什么

平移是应用于视图位置的偏移量.如果布局将VIEw放在x; y并调用setTranslationY(10),则视图将显示在x; y 10.这是一种在布局后控制VIEw的位置的方法

奖金提示,而不是记录所有内容,使用调试器

如果你仍然怀疑位置和翻译之间的区别,你可以尝试这个,创建一个空活动并设置这个布局

<?xml version="1.0" enCoding="utf-8"?><relativeLayout    xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:tools="http://schemas.androID.com/tools"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    tools:context="com.example.lelloman.dummy.MainActivity">    <TextVIEw        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        androID:text="asd asd"        androID:layout_above="@+ID/button"        androID:layout_centerHorizontal="true"/>    <button        androID:ID="@+ID/button"        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        androID:layout_centerInParent="true"        androID:text="asd"/></relativeLayout>

然后,您将看到TextVIEw位于button的正上方,因为这是relativeLayout在给定这些布局参数的情况下定位VIEws的方式.现在,试着打电话

findVIEwByID(R.ID.button).setTranslationY(100);

您会注意到该按钮将向下移动100px,但TextVIEw仍将处于旧位置,因为在布局后应用了平移.它是特定于该视图的内容,不会将视图定位在其父视图中

你也可以在xml中设置翻译

<button    androID:translationY="100px"    ...
总结

以上是内存溢出为你收集整理的android – 理解View.setTranslationY()[/ X()]全部内容,希望文章能够帮你解决android – 理解View.setTranslationY()[/ X()]所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1108725.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存