- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 getLeft() 和 getTop() 有问题,它返回 0。我在 Stackoverflow 上看到我应该使用 GlobaleLayoutListener 但仍然无法正常工作。
我的观点是这样运作的。有一个第一个水平 ScrollView 栏,让用户选择用户想要查看他的图表的时间段。当他选择“每周”或“每月”时,会出现第二个条形图。用户可以选择一个月或一天。因此,在开始时,第二条可见性消失了。
我想设置第二个栏的项目。因为就像今天我们在九月一样,如果用户点击每月,我希望第二个栏的第一项是九月。
我试过了:
ViewTreeObserver observer = decButton.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
System.out.println("KIRBY " + decButton.getLeft());
//in here, place the code that requires you to know the dimensions.
//Place your code here
}
});
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
android:background="@color/white"
>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</RelativeLayout>
<android.support.v7.widget.Toolbar
android:id="@+id/quickViewConsumptionToolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/wb_color"
android:titleTextColor="@color/white"
android:theme="@style/toolbar_white"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/hello">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/test">
<HorizontalScrollView
android:id="@+id/horizontalBar"
android:layout_width="match_parent"
android:layout_height="100px">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/dailyButton"
android:text="Daily"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/weeklyButton"
android:text="Weekly"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:id="@+id/monthlyButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5px"
android:background="@android:color/transparent"
android:text="Monthly"
android:textAllCaps="false"
android:textStyle="normal" />
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/yearlyButton"
android:text="Yearly"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/allTimeButton"
android:text="All time"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
</LinearLayout>
</HorizontalScrollView>
<View
android:id="@+id/divider"
android:layout_width="100dp"
android:layout_marginLeft="140dp"
android:layout_marginRight="20dp"
android:layout_height="1dp"
android:background="@android:color/black"
android:layout_below="@+id/horizontalBar"
android:visibility="visible"
android:layout_marginBottom="5px"/>
<HorizontalScrollView
android:id="@+id/horizontalMonthlyBarBellow"
android:layout_width="match_parent"
android:layout_height="100px"
android:layout_below="@+id/divider"
android:layout_alignParentStart="true"
android:visibility="gone">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/janButton"
android:text="January"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/febButton"
android:text="February"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:id="@+id/marchButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5px"
android:background="@android:color/transparent"
android:text="March"
android:textAllCaps="false"
android:textStyle="normal" />
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/aprilButton"
android:text="April"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/mayButton"
android:text="May"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/juneButton"
android:text="June"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/julyButton"
android:text="July"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/augButton"
android:text="August"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/septView"
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/sepButton"
android:text="September"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/octButton"
android:text="October"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/novButton"
android:text="November"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/decButton"
android:text="December"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
</LinearLayout>
</HorizontalScrollView>
<HorizontalScrollView
android:id="@+id/horizontalBarWeeklyBellow"
android:layout_width="match_parent"
android:layout_height="100px"
android:layout_below="@+id/divider"
android:layout_alignParentStart="true"
android:visibility="gone">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/mondayButton"
android:text="Monday"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tuesdayButton"
android:text="Tuesday"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:id="@+id/wednesdayButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5px"
android:background="@android:color/transparent"
android:text="Wednesday"
android:textAllCaps="false"
android:textStyle="normal" />
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/thursdayButton"
android:text="Thursday"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/fridayButton"
android:text="Friday"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/saturdayButton"
android:text="Saturday"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/sundayButton"
android:text="Sunday"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
</LinearLayout>
</HorizontalScrollView>
</RelativeLayout>
<WebView
android:id="@+id/web_view_wb_quick_view_consumption"
android:layout_width="match_parent"
android:layout_height="400px"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:layout_below="@id/test"
/>
</RelativeLayout>
最佳答案
来自 View
documentation ,讨论检索位置的方法:
These methods both return the location of the view relative to its parent. For instance, when
getLeft()
returns 20, that means the view is located 20 pixels to the right of the left edge of its direct parent.
OnGlobalLayoutListener
对你来说“不起作用”的技术是你的
decButton
包裹在
RelativeLayout
中与
RelativeLayout
没有间距(边距/填充)的左上角。
<RelativeLayout
android:layout_width="90dp"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/decButton"
android:text="December"
android:textAllCaps="false"
android:textStyle="normal"
android:layout_marginRight="5px"
android:background="@android:color/transparent"/>
</RelativeLayout>
Button
的绝对位置在窗口中,在您的
OnGlobalLayoutListener
中使用此代码:
int[] coords = new int[2];
decButton.getLocationInWindow(coords);
int absoluteX = coords[0];
int absoluteY = coords[1];
关于android - 按钮 getLeft() 和 getTop() 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46437956/
我尝试通过 getLeft() 方法打印 ImageView 在代码中的位置,只是为了看看它是否返回了正确的值(80),而 logcat 返回了 192。 ImageView andr
实际上,我在 Typo 7.6.12 上处理一个 typo3 模板。我的问题是我无法从 Left、Right 或 Border 列中获取我的内容。只有正常工作。 我的想法是,用户可以在左栏编辑页脚元素
实际上,我在 Typo 7.6.12 上处理一个 typo3 模板。我的问题是我无法从 Left、Right 或 Border 列中获取我的内容。只有正常工作。 我的想法是,用户可以在左栏编辑页脚元素
我正在使用以下代码。但是所有方法都返回零值。我知道要获得 View 的坐标,我们的 View 应该被绘制。这就是为什么我在 onResume 方法中使用代码但仍然无法正常工作的原因。有什么想法吗?
我有一个运行正常的MVC应用程序。但是,我一直收到此 ext-all.js 错误-“未捕获的TypeError:当我朝UI的左端移动时,无法调用未定义的方法'getLeft'。 该错误似乎无害,但我似
有什么区别View.getLeft() 与 View.getScrollX() 相比?请不要从文档中复制和粘贴定义,因为我将在下面为您做这件事 getScrollX() Return the scro
在 OnCreate 中,Button.getLeft 返回 0。按钮是动态创建的,Button.performClick() 工作正常。怎么离开OnCreate? OnCreate之后我可以获得真正
我的 getLeft() 和 getTop() 有问题,它返回 0。我在 Stackoverflow 上看到我应该使用 GlobaleLayoutListener 但仍然无法正常工作。 我的观点是这样
我正在尝试获取 WPF 中控件的左侧。但我总是收到 NaN 值而不是 double 值。这是我正在尝试的: XAML:
本文整理了Java中com.koolearn.klibrary.text.view.ZLTextRegion.getLeft()方法的一些代码示例,展示了ZLTextRegion.getLeft()的
我在安卓系统工作。我想在我的应用程序中添加搜索栏的功能。 这是我的 xml 文件:- And this is my java code related to this seek bar. mS
我尝试通过展开/收缩手势和相对布局上的拖放功能来实现放大/缩小。 这是我的 OnPinchListener 处理缩放效果的代码。mainView 是布局 xml 文件中定义的 RelativeLa
我正在编写一个拖放应用程序,并且因为某些参数而感到非常困惑。 请大家帮忙解答 首先,我阅读了View 类的文档并得到了以下解释。 getX() :此 View 的视觉 x 位置,以像素为单位。 get
我的布局: ... 我想保存所有按钮的 x 和 y 位置。 我试过这个: Button b[] = new Button[40]; int parX [] = new int[40]; int
我是一名优秀的程序员,十分优秀!