Android视图未显示

时间:2010-11-04 16:42:07

标签: android visibility

我正在尝试在主视图的顶部显示新视图。

以下是新视图的XML:

    <RelativeLayout 
        android:id="@+id/mapdetaillayout" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"  
        android:gravity="left"
        xmlns:android="http://schemas.android.com/apk/res/android">

             <TextView 
                android:text="This is the Text from the XML File." 
                android:id="@+id/DetailTextView" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content">
            </TextView>

    </RelativeLayout>       

以下是我用来将新viev推送到屏幕上的代码:

        RelativeLayout DetailLayout = new RelativeLayout(c);

        LayoutInflater inflater = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = inflater.inflate(R.layout.mapdetailview, DetailLayout);    

        TextView tv = (TextView) v.findViewById(R.id.DetailTextView);
        tv.setText("HERE IS THE TEXT FROM THE CODE");

        // This Log works
        Log.i("MESSAGE", tv.getText());

        DetailLayout.setBackgroundColor(Color.WHITE);

        LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        params.gravity = Gravity.NO_GRAVITY;

        DetailLayout.bringToFront();
        DetailLayout.setVisibility(View.VISIBLE);

代码被调用,日志输出预期的文本,这对我来说表明已经创建了视图 - 它只是没有显示在屏幕上。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:3)

我在代码中看不到对Activity的setContentView()方法的任何调用。可能你就是不这样做?如果是这样,那就是你没有看到任何东西的原因。此外,您无需手动即时更新RelativeLayout。尝试将布局资源指定为内容视图:

setContentView(R.layout.mapdetailview);

然后您可以通过以下方式获取TextView:

TextView tv = (TextView) findViewById(R.id.DetailTextView);

我希望有所帮助。

答案 1 :(得分:0)

您是否尝试将LayoutParams.WRAP_CONTENT更改为fill_parent以查看是否有任何更改?