在图像视图上方滚动的布局

时间:2015-04-20 08:23:38

标签: android scrollview android-linearlayout

我希望布局在图像上方滚动,它的工作正常但我需要图像也可以点击。怎么做到这一点?

代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <FrameLayout
        android:id="@+id/frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <ImageView
            android:id="@+id/article_image"
            android:layout_width="match_parent"
            android:layout_height="250dp"
            android:layout_gravity="top"
            android:scaleType="fitXY"
            android:src="@drawable/ic_launcher" />

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

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                **android:paddingTop="150dp"**
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/hello_world" />

                ...so may views...
            </LinearLayout>
        </ScrollView>

    </FrameLayout>

</LinearLayout>

由于我添加了android:paddingTop="150dp",布局会在图片上方滚动,但现在该图片将如何点击?

3 个答案:

答案 0 :(得分:0)

首先尝试在xml文件中的现有框架布局下添加它:

    <LinearLayout
    //set id here
    >
        <ImageView
                android:id="@+id/article_image"
                android:layout_width="match_parent"
                android:layout_height="250dp"
                android:layout_gravity="top"
                android:scaleType="fitXY"
                android:src="@drawable/ic_launcher" />

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

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    **android:paddingTop="150dp"**
                    android:orientation="vertical" >

                    <TextView
                        android:id="@+id/textView1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="@string/hello_world" />

                    ...so may views...
                </LinearLayout>
            </ScrollView>
</LinearLayout>

这是您的布局的副本,但没有框架布局,当您需要图像可点击时,您将使用它。 然后在onCreate()中以语法方式隐藏 然后:
当你需要图像可点击并使你的版面副本可见时,删除框架布局programitaclly,这里是如何设置你的框架布局可见性: 所以将框架布局定义为您的类的实例并将其设置为您的框架布局ID,并且当您需要使图像可单击时添加:

frmLayout.setVisibility(FrameLayout.GONE);

llLayout.setVisibility(LinearLayout.VISIBLE);

希望这会对你有所帮助。

答案 1 :(得分:0)

请问你能更新你的xml吗?您可以轻松点击imageview。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/LinearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <FrameLayout
            android:id="@+id/frame"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <ImageView
                android:id="@+id/article_image"
                android:layout_width="match_parent"
                android:layout_height="250dp"
                android:layout_gravity="top"
                android:scaleType="fitXY"
                android:src="@drawable/ic_launcher" />

            <ScrollView
                android:layout_width="match_parent"
                android:layout_height="100dp"
                android:layout_gravity="bottom">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >

                    <TextView
                        android:id="@+id/textView1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="@string/hello_world" />

                    ...so may views...
                </LinearLayout>
            </ScrollView>

        </FrameLayout>

    </LinearLayout>

答案 2 :(得分:0)

尝试使用相对父级,并在滚动视图后添加imageview。也可以将填充顶部设置为与图像高度相同的尺寸。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="bottom">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:paddingTop="250dp">


                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="Hello" />

            </LinearLayout>
        </ScrollView>

    <ImageView
        android:id="@+id/article_image"
        android:layout_width="match_parent"
        android:layout_height="250dp"
        android:layout_gravity="top"
        android:scaleType="fitXY"
        android:focusable="true"
        android:clickable="true"
        android:src="@drawable/back" />

</RelativeLayout>