我希望布局在图像上方滚动,它的工作正常但我需要图像也可以点击。怎么做到这一点?
代码:
<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"
,布局会在图片上方滚动,但现在该图片将如何点击?
答案 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>