我可能会遗漏一些东西,但是我找不到一种方法来将子视图添加到具有特定布局参数的指定索引处的视图。有addView(View v, LayoutParams lp)
而且addView(View v, int index)
- 但我找不到指定两者的方法。
我错过了什么?
答案 0 :(得分:4)
为什么,这两种方法都有:addView(View child, int index, ViewGroup.LayoutParams params)
:Here。
答案 1 :(得分:1)
这是一个例子。我用它来显示任何视图的进度指示器。
final ViewGroup rootFrameLayout = (ViewGroup) activity.getWindow().peekDecorView();
LayoutInflater li = LayoutInflater.from(activity);
progressView = li.inflate(R.layout.progressindicator, null);
rootFrameLayout.addView(progressView);
这是一个示例布局文件(id是R.layout.progressindicator)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ProgressBar
android:id="@+id/progressBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="3dp"
android:layout_toRightOf="@+id/progressBar1"
android:maxLines="3"
android:lines="3"
android:background="#88000000"
android:textColor="#ffffff"
android:text="@string/waitingForServer" />
如果您想动态更改布局,则可以调用布局中元素的方法。像这样:
TextView textView = (TextView) progressView.findViewById(R.id.textView1);
textView.setMaxLines(lines);
textView.setLines(lines);
textView.setVisibility(View.VISIBLE);