【发布时间】:2015-02-03 08:53:05
【问题描述】:
我的问题是我有一个 ListView,由适配器填充,并且在列表中的每个元素内都有一些按钮和 ontouchevents。我希望列表仅将屏幕中心的元素显示为“活动”,为此我在不在屏幕中间的列表元素上显示一个 relativeLayout。这已经可以了。
问题来了,因为我放在项目前面的视图有点透明,它后面的按钮(在列表视图项目内)仍然是可点击的。我希望顶部的 relativeview 消耗 onclick 和 ontouch 事件,但是我阅读的所有内容都不起作用,请感谢您的帮助! :)
我试过了
listViewElement.setEnabled(false);
listViewElement.setClickable(false);
与
relativeLayoutOverElement.bringToFront();
relativeLayoutOverElement.setClickable(true);
relativeLayoutOverElement.setEnabled(true);
relativeLayoutOverElement.setFocusable(true);
relativeLayoutOverElement.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
relativeLayoutOverElement.setOnClickListener(null);
但是没有用。
这是listview中每个元素的xml代码格式:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:arc="http://schemas.android.com/apk/res-auto"
android:id="@+id/container"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:paddingBottom="2dp"
android:paddingTop="2dp" >
<com.capricorn.ArcMenu
android:id="@+id/arc_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:visibility="gone"
arc:childSize="@dimen/menuChildSize"
arc:fromDegrees="@dimen/menuFromDegrees"
arc:toDegrees="@dimen/menuToDegrees" />
<ImageView
android:id="@+id/imageplay"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerInParent="true"
android:src="@drawable/play"
android:visibility="gone" />
<RelativeLayout
android:id="@+id/transparency"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/black"
android:visibility="gone" >
</RelativeLayout>
<LinearLayout
android:id="@+id/container2"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/event_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:gravity="center"
android:padding="6dp"
android:textColor="@color/green"
android:textSize="15sp"
android:visibility="gone" />
<RelativeLayout
android:id="@+id/imgvidcontainer"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<RelativeLayout
android:id="@+id/videocontainer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone" >
<VideoView
android:id="@+id/video"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY" />
</RelativeLayout>
<LinearLayout
android:id="@+id/footer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:orientation="vertical"
android:paddingBottom="6dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="6dp" >
<LinearLayout
android:id="@+id/footer_location_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/location_icon"
android:layout_width="25dp"
android:layout_height="25dp"
android:src="@drawable/icon_location_green" />
<TextView
android:id="@+id/location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="6dp"
android:background="@android:color/transparent"
android:textColor="@color/green" />
</LinearLayout>
<RelativeLayout
android:id="@+id/footer_caption_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/seemorecaption"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:src="@drawable/seemorecaption"
android:visibility="gone" />
<TextView
android:id="@+id/_caption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/green" />
</RelativeLayout>
<LinearLayout
android:id="@+id/footer__info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/comments"
android:layout_width="35dp"
android:layout_height="35dp"
android:paddingTop="7dp"
android:src="@drawable/comments" />
<TextView
android:id="@+id/numcomments"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginLeft="6dp"
android:layout_marginRight="20dp"
android:background="@android:color/transparent"
android:gravity="center_vertical"
android:textColor="@color/green" />
<ImageView
android:id="@+id/like"
android:layout_width="35dp"
android:layout_height="35dp"
android:paddingBottom="7dp"
android:src="@drawable/like" />
<TextView
android:id="@+id/numlikes"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginLeft="6dp"
android:layout_marginRight="20dp"
android:background="@android:color/transparent"
android:gravity="center_vertical"
android:textColor="@color/green" />
<ImageView
android:id="@+id/dislike"
android:layout_width="35dp"
android:layout_height="35dp"
android:paddingTop="7dp"
android:src="@drawable/unlike" />
<TextView
android:id="@+id/numdislikes"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginLeft="6dp"
android:layout_marginRight="20dp"
android:background="@android:color/transparent"
android:gravity="center_vertical"
android:textColor="@color/green" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/morepoints"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:paddingBottom="6dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="6dp"
android:textColor="@color/green"
android:textSize="25dp" />
</RelativeLayout>
这是包含列表视图的片段的 xml 代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:staggered="http://schemas.android.com/apk/res-auto"
android:id="@+id/listLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:orientation="vertical" >
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true">
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:numColumns="1"
android:paddingTop="50dp" />
</android.support.v4.widget.SwipeRefreshLayout>
<LinearLayout
android:id="@+id/upperBar"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:background="@android:color/transparent"
android:orientation="horizontal" >
<TextView
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="0.85"
android:background="@drawable/greenborder"
android:gravity="center_vertical|center_horizontal"
android:textColor="@color/green"
android:textSize="20dp" />
<TextView
android:id="@+id/blackSquare"
android:layout_width="50dp"
android:layout_height="fill_parent"
android:background="@android:color/black"
android:visibility="gone" />
</LinearLayout>
<RelativeLayout
android:id="@+id/profilePictureLayout"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@layout/rounded_shape"
android:visibility="gone" >
<ImageView
android:id="@+id/profile_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@layout/rounded_shape"
android:padding="4dp" />
</RelativeLayout>
</RelativeLayout>
我正在尝试从片段中的滚动条禁用列表视图中不在屏幕中心的元素。我设法放置了“透明度”覆盖,但元素内的所有内容仍然可点击
【问题讨论】:
-
发布具有列表视图的 xml 代码
-
在哪种情况下禁用列表视图,然后在启用时...您能清楚地解释您的要求吗?
标签: android android-layout android-listview