对于片段TextView,getTextSize()始终返回1.0

时间:2013-06-11 17:27:11

标签: android textview

我正在对应用进行Robolectric测试。 (带ABS的Robolectric 2.1)。在我的片段中,我有一个带样式的TextView:

<TextView android:id="@+id/homepage_title_textview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        android:paddingTop="@dimen/loading_textview_padding_top"
        android:text="@string/loading_homepage_content"
        android:textColor="@color/gray"
        style="@android:style/TextAppearance.Medium"/>  

我尝试的任何时候:

TextView homepageTitle = (TextView) mFragment.getView().findViewById(R.id.homepage_title_textview);  
float textSize = homepageTitle.getTextSize();  

它总是返回1.0。我已经测试过TextView已经创建并且可见:

assertThat(homepageTitle.getVisibility(), equalTo(View.VISIBLE));  

我还将整个style="@android:style/TextAppearance.Medium"行更改为android:textSize="18sp",以确定它是否会产生影响而事实并非如此。

如果有帮助,这是我的确切Robolectric测试:

int style = android.R.style.TextAppearance_Medium; 
int[] attrWanted = {android.R.attr.textSize};
TypedArray styleValues = Robolectric.application.getApplicationContext().obtainStyledAttributes(style, attrWanted);
String wantedTextSize = styleValues.getString(0);
String actualTextSize = String.valueOf(myTextView.getTextSize());  

wantedTextSize返回“18sp”
actualTextSize返回“1.0”

2 个答案:

答案 0 :(得分:0)

我相信会得到textview的文字大小。

String textSize = homepageTitle.getTextSize(); 

为此,您必须指定尺寸

style="android:textSize="18sp""

不符合资格。但

android:textSize="18sp"

将符合资格。

希望这有效。

答案 1 :(得分:0)

我很确定getTextSize()返回一个浮点数:P

检查this

使用:

float textSize = homepageTitle.getTextSize();