我正在尝试在主视图的顶部显示新视图。
以下是新视图的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);
代码被调用,日志输出预期的文本,这对我来说表明已经创建了视图 - 它只是没有显示在屏幕上。
任何帮助都将不胜感激。
答案 0 :(得分:3)
我在代码中看不到对Activity的setContentView()方法的任何调用。可能你就是不这样做?如果是这样,那就是你没有看到任何东西的原因。此外,您无需手动即时更新RelativeLayout。尝试将布局资源指定为内容视图:
setContentView(R.layout.mapdetailview);
然后您可以通过以下方式获取TextView:
TextView tv = (TextView) findViewById(R.id.DetailTextView);
我希望有所帮助。
答案 1 :(得分:0)
您是否尝试将LayoutParams.WRAP_CONTENT更改为fill_parent以查看是否有任何更改?