我在Nutiteq下的ViewLabel工作不正常

时间:2014-07-10 16:35:33

标签: android-linearlayout android-custom-view layout-inflater nutiteq

我可以在Nutiteq中填充ViewLabel的视图,但我无法在此版面的文本视图中设置正确的文字。

我的代码正在关注

    //Setting Popup Label if we click the area
    LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);      
    View labelView = inflater.inflate(R.layout.popup_field, null);

    //In order to get a dynamic "redimensionable" Ballon aka ViewLabel
    labelView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
                      MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
    labelView.layout(0, 0, labelView.getMeasuredWidth(), labelView.getMeasuredHeight());

    //labelView.measure(400, 400);
    //labelView.layout(100, 100, 400, 400);

    Log.info("drawField:: Nach Label fieldLabel = new ViewLabel... ");

    LinearLayout lLayout = (LinearLayout)labelView.findViewById(R.id.layout1);
    lLayout.setBackgroundColor(Color.RED);
    TextView farmNameTV  = (TextView)labelView.findViewById(R.id.farmName);
    TextView areaTV      = (TextView)labelView.findViewById(R.id.area);
    TextView statusTV    = (TextView)labelView.findViewById(R.id.status);

    farmNameTV.setTextColor(Color.BLACK);
    farmNameTV.setText("Farm CacoCaCoca");


    areaTV.setTextColor(Color.BLACK);
    String areaString = "12.34"
    areaTV.setText("Area "+areaString);

    statusTV.setTextColor(Color.BLACK);
    String statusString = "Status:::qwertzuiopasdfghjklyxcvbnm";
    statusTV.setText(statusString); 

*你可以看到红色是我膨胀的观点。

enter image description here

R.layout.popup_field看起来像这样

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/farmName"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/farmName"/>

<TextView
    android:id="@+id/area"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"       
    android:text="@string/area"/>

<TextView
    android:id="@+id/status"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"       
    android:text="@string/status"/>    

字符串

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Nutiteq3D</string>
<string name="area">Area</string>
<string name="status">Status</string>
<string name="farmName">Farm Name</string>
</resources>

有没有人完成这项任务?任何人都可以帮我找出我的错误吗?

使用谷歌Api的MapView很容易,但是我用Nutiteq和纯粹的活动来开发它,所以,没有片段和膨胀我们通常需要一个ViewGroup,而G-Api下的这个ViewGroup将是MapView,所以继承自ViewGroup但在Nutiteq不是这样的,Nutiteq的MapView继承了android.view并且我无法投射,我可以在null的调用中将inflate分配为View {{1}},如您所见。

所以,人们,我非常感谢你的帮助。

亲切的问候

1 个答案:

答案 0 :(得分:2)

解决! 它与ViewLabel没有关系,而是正常的Android.View,我想在声明可调整大小的View之后将Text分配给TextView,因此它不能正常工作。

所以解决方案是编写上面的所有tv.setText     labelView.measure(MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNSPECIFIED),                       MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNSPECIFIED));     labelView.layout(0,0,labelView.getMeasuredWidth(),labelView.getMeasuredHeight());