gpt4 book ai didi

android - 如何在回收站 View 中隐藏特定行的 View ?

转载 作者:行者123 更新时间:2023-11-30 01:10:12 25 4
gpt4 key购买 nike

我有一个列表,使用回收器 View 来显示列表。问题是我在 Activity 和回收站 View 方面很出色。我还添加了一个弹出菜单,点击右侧的三个点。但是我无法访问列表最后一行的三个点,它隐藏在晶圆厂后面。像这样:enter image description here

所以为了避免这种情况,我想在列表的最后一个索引处添加一个空行。但它显示了个人资料图像和水平 View 。我想隐藏这个。我该怎么做?

主要 Activity 布局:

    <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.example.siddhi.meavita.Activities.EventsListActivity">

<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />

</android.support.design.widget.AppBarLayout>

<include layout="@layout/content_events_list" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
android:src="@drawable/ic_add_white_36dp"
android:background="@color/colorAccent"/>

</android.support.design.widget.CoordinatorLayout>


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/parentPanel"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.example.siddhi.meavita.Activities.EventsListActivity"
tools:showIn="@layout/activity_events_list">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal|bottom"
android:paddingTop="05dp"
android:paddingBottom="10dp" />
</RelativeLayout>

Activity 卡片布局:

    <?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="wrap_content">


<RelativeLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginTop="05dp">

<com.github.siyamed.shapeimageview.CircularImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_person_black_48dp"
app:siBorderWidth="1dp"
app:siBorderColor="@android:color/darker_gray"
android:layout_marginLeft="20dp"
android:id="@+id/eventsIcon"
android:layout_marginTop="05dp"
android:layout_marginBottom="05dp" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Event name"
android:id="@+id/scheduleName"
android:textSize="14sp"
android:layout_alignTop="@+id/eventsIcon"
android:layout_toRightOf="@+id/eventsIcon"
android:layout_toEndOf="@+id/eventsIcon"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:textColor="@android:color/black"
android:textStyle="bold" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_more_vert_black_24dp"
android:id="@+id/more"
android:layout_centerInParent="true"
android:layout_alignParentEnd="true"
android:layout_marginRight="20dp" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/switch_thumb_normal_material_light"
android:layout_alignBottom="@+id/eventsIcon"
android:layout_alignParentBottom="true"
android:layout_marginRight="20dp"
android:layout_toEndOf="@+id/eventsIcon"
android:layout_below="@+id/eventsIcon"
android:layout_alignLeft="@+id/scheduleName"
android:layout_alignStart="@+id/scheduleName"
android:id="@+id/view4"></View>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(Type of event)"
android:id="@+id/eventType"
android:layout_centerVertical="true"
android:layout_alignLeft="@+id/scheduleName"
android:layout_alignStart="@+id/scheduleName"
android:textSize="12sp"
android:textColor="@android:color/black" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Date and time"
android:id="@+id/eventDateTime"
android:layout_below="@+id/eventType"
android:layout_alignLeft="@+id/view4"
android:layout_alignStart="@+id/view4"
android:textSize="12sp"
android:textColor="@android:color/black"
android:layout_marginTop="02dp" />
</RelativeLayout>

</LinearLayout>

适配器:

       public class EventListAdapter extends RecyclerView.Adapter<EventListAdapter.MyViewHolder>{

private final OnItemClickListener listener;
private ArrayList<Event> eventsList;
int status;
Context context;

public interface OnItemClickListener {
void onItemClick(Event item);
}

public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView eventName,eventType,eventDateTime;
public PopupMenu popup;
public ImageView more;
public View horizontalView;

public com.github.siyamed.shapeimageview.CircularImageView profileImage;


public MyViewHolder(View view) {
super(view);
eventName = (TextView) view.findViewById(R.id.scheduleName);
eventType = (TextView) view.findViewById(R.id.eventType);
eventDateTime = (TextView) view.findViewById(R.id.eventDateTime);
more = (ImageView) itemView.findViewById(R.id.more);
horizontalView = (View) itemView.findViewById(R.id.view4);
popup = new PopupMenu(context, more);
profileImage = (com.github.siyamed.shapeimageview.CircularImageView) itemView.findViewById(R.id.eventsIcon);

MenuInflater inflate = popup.getMenuInflater();
inflate.inflate(R.menu.pop_up_menu,popup.getMenu());


popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {

@Override
public boolean onMenuItemClick(final MenuItem item) {
switch (item.getItemId()) {
case R.id.edit:
// do what you need.
int pos = getLayoutPosition();
Event currentItem= eventsList.get(pos);
// update(pos);

// ((CheckListActivity)context).updateCheckList(context,currentItem);

Toast.makeText(context, "Edit", Toast.LENGTH_SHORT).show();
break;
case R.id.delete:
// do what you need .
int pos1 = getLayoutPosition();
Event currentItem1= eventsList.get(pos1);

((EventsListActivity)context).deleteEvent(context,currentItem1);

Toast.makeText(context, "Delete", Toast.LENGTH_SHORT).show();
break;
default:
return false;
}
return false;
}
});

}

public void bind(final Event item, final OnItemClickListener listener) {

itemView.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
listener.onItemClick(item);
}
});
}
}


public EventListAdapter(ArrayList<Event> eventsList,Context context,OnItemClickListener listener) {
this.eventsList = eventsList;
this.listener = listener;
this.context = context;
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.event_card, parent, false);

return new MyViewHolder(itemView);
}

@Override
public void onBindViewHolder(final MyViewHolder holder, int position) {

Event events = eventsList.get(position);
holder.eventName.setText(events.getEventName());
holder.eventType.setText(events.getEventType());
holder.eventDateTime.setText(events.getEventDate() + "," + events.getEventTime());

holder.bind(eventsList.get(position), listener);


holder.more.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

Toast.makeText(context, "More", Toast.LENGTH_SHORT).show();
holder.popup.show();
}
});



}

@Override
public int getItemCount() {
return eventsList.size();
}
}

如何做到这一点?谢谢..

最佳答案

你可以给你的recyclerview添加padding,这样更容易:

android:clipToPadding="false"
android:paddingBottom="80dp"

否则你可以检查你是否在 onBindViewHolder 中的最后一个位置:

if (position == eventsList.size() -1){
holder.profileImage.setVisibility(View.INVISIBLE)
}else{
holder.profileImage.setVisibility(View.VISIBLE)
}

关于android - 如何在回收站 View 中隐藏特定行的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38501978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com