代码之家  ›  专栏  ›  技术社区  ›  Gödel77

Nutiteq下的My ViewLabel无法正常工作

  •  0
  • Gödel77  · 技术社区  · 12 年前

    我可以在中填充ViewLabel的视图 Nutiteq 但我无法在此布局的文本视图中设置正确的文本。

    我的代码如下

        //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>
    

    有人已经完成这项任务了吗?有人能帮我找出我的错误吗?

    使用GoogleApi的MapView很容易,但我使用Nutiteq开发了这个,并且只使用纯Activities,因此,没有碎片,为了膨胀,我们通常需要一个ViewGroup,而G-Api下的这个ViewGroup将是MapView,因此继承自ViewGroup,但在Nutiteq中不是这样的,Nutiteq的MapView继承了android.view,我无法铸造,我只能将其分配为ViewGroup null 在的呼叫中 inflate 正如你所看到的。

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

    诚挚的问候

    1 回复  |  直到 12 年前
        1
  •  0
  •   Gödel77    12 年前

    解决了的! 这与 ViewLabel 但正常的 Android.View ,我想在声明可调整大小后将文本分配给TextView View 因此它工作得不好。

    因此,解决方案是编写所有 tv.setText 在上面 labelView.measure(MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNSPECIFIED)); labelView.layout(0,0,labelView.getMeasuredWidth(),labelView.GetMeasured Height());

    推荐文章