Android - 我要学习什么样的视图/ xml

时间:2017-05-11 21:36:33

标签: java android xml listview

问题我希望视图布局如下图所示,顶部是我想要的图像视图,中间是文本视图和底部项目列表。所有这些我想要滚动(图中的黑色箭头)。以这种方式,用户首先看到图像文本和部分列表项,如果向下滚动,则查看项目列表。 对于底部我想使用listView,但是这样我认为我将有2个可滚动视图(???)然后我想将列表放在2列中,我不知道它是否可能与的ListView

问题

我没有编写代码,因为我想知道我要学习什么样的观点或其他东西。 我粗略地描述了这样的事情,但结果真是太可怕了

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <RelativeLayout
        android:layout_width="match_parent" android:layout_height="match_parent">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="200dp"
            app:srcCompat="@drawable/nope"
            android:id="@+id/imageView4"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true" />


        <View
            android:id="@+id/centerShim5"
            android:layout_height="0dp"
            android:layout_width="match_parent"
            android:layout_centerInParent="true"
            android:visibility="invisible" />

        <ListView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/list"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />

        <TextView
            android:text="TextView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/textView2"
            android:textColor="@color/ame_default_cluster_circle_color_medium"
            android:textSize="26dp"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />


    </RelativeLayout>


</ScrollView>

1 个答案:

答案 0 :(得分:0)

我无法在Scrollview中使用listview,并且在matryoshka的启发下我找到了解决方案。 我定义了xml1文件,其中我只有ScrollView和LinearLayout

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:id="@+id/linear">



    </LinearLayout>



</ScrollView>

之后,对于我想要添加的每种项目,我定义了另一个xml2并在我添加元素之后:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/ame_default_cluster_text_color">

    <TextView
        android:text="TextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:maxLines="5"
        android:textSize="32sp"
        android:textColor="@color/ame_default_cluster_circle_shadow_color"
        android:id="@+id/text1"
        android:textAlignment="center" />

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:srcCompat="@drawable/nope"
        android:id="@+id/photo" />

    <TextView
        android:text=" "
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:id="@+id/descrtiption"
        android:textColor="@color/ame_default_cluster_circle_shadow_color"
        android:layout_margin="10sp" />
</LinearLayout>

代码:

layoutInflater = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View item_view=layoutInflater.inflate(R.layout.xml1,container,false);
            LinearLayout linearLayout=(LinearLayout)item_view.findViewById(R.id.linear);
            LayoutInflater inflater= LayoutInflater.from(ctx);
            View view1  = inflater.inflate(R.layout.xml2, linearLayout, false);
            TextView text1=(TextView)view1.findViewById(R.id.text1);
            text1.setText();
            ImageView imageview=(ImageView)view1.findViewById(R.id.photo);

显然我可以为要添加的列表视图定义XML,并使用普通foreach添加它,希望这会对某人有所帮助。