水平ScrollView中来自膨胀布局的多个视图

时间:2013-08-01 13:38:03

标签: android android-linearlayout android-scrollview

道歉,如果我不能正确地解决我的问题,但自从我为Android开发以来已经有一段时间了。

我要做的是在屏幕顶部有一些标签,按下时显示ScrollView。这不是我想要使用ViewPager的东西,因为滑动操作需要与选项卡分开。

每个ScrollView都应该有一个子项,它是一个LinearLayout(水平方向),它应该占用ScrollView的高度,但宽度应该包含所包含的内容。 (内容的宽度应与屏幕宽度相匹配)。

在标签的片段活动内部膨胀的内容视图应并排放置,每个视图占用标签内容的整个空间。

下面是我正在尝试描述的内容以及创建的无法正常工作的布局的代码段。

enter image description here

片段布局 - (tab_fragment.xml)

<?xml version="1.0" encoding="utf-8"?>
<ScrollView 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/tabScrollView"
        android:fillViewport="true">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:orientation="horizontal"
            android:id="@+id/pageLinearLayout"
            ></LinearLayout>
</ScrollView>

夸大视图 - (article_layout.xml)

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ff0000">
</ImageView>

片段活动

// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.tab_fragment, container, false);

LinearLayout pageLinearLayout = (LinearLayout)view.findViewById(R.id.pageLinearLayout);

for(int i = 0; i < 3; i++){
    View pageView = inflater.inflate(R.layout.article_layout, null);
    if(i % 2 != 0){
        pageView.setBackgroundColor(Color.parseColor("#00ffff"));
    }
    pageLinearLayout.addView(pageView);
}

1 个答案:

答案 0 :(得分:-2)

我添加了一个名为scrollmain的布局文件(仅包含一个LinearLayout),我测试了以下代码并且运行良好:

 //View view = inflater.inflate(R.layout.tab_fragment, container, false);
    LinearLayout layout = (LinearLayout) findViewById(R.id.scrollmain);
    LayoutInflater inflater = getLayoutInflater();
    View view = inflater.inflate(R.layout.tab_fragment, null, false);
    layout.addView(view)

    LinearLayout pageLinearLayout = (LinearLayout)view.findViewById(R.id.pageLinearLayout);

    for(int i = 0; i < 3; i++){
        View pageView = inflater.inflate(R.layout.article_layout, null);
        if(i % 2 != 0){
            pageView.setBackgroundColor(Color.parseColor("#00ffff"));
        }
        pageLinearLayout.addView(pageView);
    }
祝你好运。