我有一些代码需要知道视图的大小。一切正常的字体工作正常,但是当手机有大字体时似乎有问题。在辅助功能选项中选择。从我可以收集到的视图的高度返回同样忽略较大的字体。
复杂性来自于我在将可见性设置为View.GONE的情况下测量视图的事实。这是我目前的代码:
v.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
final int targetHeight = v.getMeasuredHeight();
我有一个想法是检测是否启用了大字体并相应地调整了测量高度,但这似乎是一个相当笨重的解决方案。也许其他人之前已经解决了这个问题?
编辑:
这是导致问题的布局 - 全部以XML格式声明:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/signup_prompt_wrapper"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:orientation="vertical"
android:paddingRight="@dimen/signup_drawer_inner_padding"
android:paddingTop="@dimen/signup_drawer_inner_padding"
android:background="@color/signup_prompt_color">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/signup_prompt_image_wrapper"
android:layout_width="wrap_content"
android:layout_height="@dimen/signup_drawer_image_height"
android:layout_gravity="center_vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_report_white_24dp" />
</LinearLayout>
<TextView
android:id="@+id/signup_prompt_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textColor="@color/white"
android:paddingLeft="@dimen/signup_drawer_inner_padding" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:orientation="horizontal">
<Button
android:id="@+id/signup_prompt_dismiss"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:visibility="invisible"
android:textColor="@color/white"
android:text="DISMISS" />
<Button
android:id="@+id/signup_prompt_signup"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:textColor="@color/white"
android:text="SIGN IN" />
</LinearLayout>
</LinearLayout>