动态添加缺少滚动条的视图

时间:2013-12-13 11:41:54

标签: java android xml android-layout dynamic

我正在动态添加视图:

            LayoutInflater layoutInflater = 
            (LayoutInflater) getActivity().getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            final View addView = layoutInflater.inflate(R.layout.dynamicabout, null);
            TextView textOut = (TextView)addView.findViewById(R.id.aboutcontent);
            textOut.setText(strings.get(index));
            ((ViewGroup) v).addView(addView);

然而,一旦我们到达屏幕的底部并且超出,则没有滚动条。 我尝试使用ScrollView,但这没有做任何事情。

dynamicabout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <LinearLayout 
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/aboutcontent"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:autoLink="all"/>
        </LinearLayout>
    </ScrollView>

</RelativeLayout>

about.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="@dimen/stdpadding"
    android:paddingRight="@dimen/stdpadding"
    android:paddingBottom="@dimen/stdpadding"
    android:paddingTop="@dimen/stdpadding"
    android:orientation="vertical" >
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        </ScrollView>
</LinearLayout>

2 个答案:

答案 0 :(得分:1)

您需要做的是需要父母和子女视图。将子项添加到Parent。 Parent是Dynamicabout.xml中ScrollView中的LinearLayout。孩子是关于XML的。在运行时扩展XML并将其添加到父视图(ScrollView中的LinearLayout)。

P.S。 &GT;设置父布局的ID,以便能够在其中添加视图,只要我看到它没有ID。

答案 1 :(得分:0)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="@dimen/stdpadding"
    android:paddingRight="@dimen/stdpadding"
    android:paddingBottom="@dimen/stdpadding"
    android:paddingTop="@dimen/stdpadding"
    android:orientation="vertical" >
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
 <LinearLayout 
android:id="@+id/linear
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

        </ScrollView>
</LinearLayout>

/////////////////////////////////////////////// /

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

        <LinearLayout 
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/aboutcontent"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:autoLink="all"/>
        </LinearLayout>


</RelativeLayout>

/////////////////////////////////////////////// ///////////////

LinearLayout linear=(LinearLayout)findviewbyId(R.id.linear);
 LayoutInflater layoutInflater = 
            (LayoutInflater) getActivity().getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            final View addView = layoutInflater.inflate(R.layout.dynamicabout, null);
            TextView textOut = (TextView)addView.findViewById(R.id.aboutcontent);
            textOut.setText(strings.get(index));
linearview.addView(addView);

请查看此代码: