0

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

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

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

在选项卡的 Fragment Activity 中膨胀的内容视图应该并排放置,每个视图都占据了分配给选项卡内容的整个空间。

下面是我尝试描述的内容以及创建的无效布局的代码片段的说明。

在此处输入图像描述

片段布局 - (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);
}
4

1 回答 1

-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);
    }

祝你好运。

于 2013-08-01T14:36:55.560 回答