Android 什么';listview项和listview页脚在呈现生命周期中的区别是什么?

Android 什么';listview项和listview页脚在呈现生命周期中的区别是什么?,android,android-layout,android-listview,android-view,android-lifecycle,Android,Android Layout,Android Listview,Android View,Android Lifecycle,我有一个包含项目和页脚视图的列表视图。项目布局工作正常,但页脚的布局与项目视图不一样 我不明白我的错在哪里 这是我的项目的布局xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layo

我有一个包含项目和页脚视图的列表视图。项目布局工作正常,但页脚的布局与项目视图不一样

我不明白我的错在哪里

这是我的项目的布局xml:

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

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="vertical" >

    <RelativeLayout
        android:id="@+id/lstCardItem"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:background="@drawable/pm_dashboard_cardshadow" />

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5.33dp"
            android:layout_marginLeft="11.67dp"
            android:layout_marginRight="11.67dp"
            android:layout_marginTop="6dp" >

            <ImageView
                android:id="@+id/ivCard"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_alignParentBottom="true"
                android:animateLayoutChanges="true"
                android:scaleType="fitXY" />

            <com.controls.DynamicResizeImageView
                android:id="@+id/ivCardLock"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:animateLayoutChanges="true"
                android:background="@drawable/pm_dashboard_cardmask"
                android:scaleType="center"
                android:src="@drawable/selector_btn_dashboard_lock" />

            <LinearLayout
                android:id="@+id/llInfo"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_alignParentBottom="true"
                android:gravity="top|right"
                android:orientation="vertical"
                android:paddingLeft="18dp"
                android:paddingRight="18dp"
                android:visibility="visible" >

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_gravity="center|right"
                    android:gravity="center|right"
                    android:orientation="horizontal"
                    android:paddingBottom="4dp"
                    android:paddingTop="4dp" >

                    <TextView
                        android:id="@+id/tvCardBalance"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_toLeftOf="@+id/tvCurrency"
                        android:gravity="top"
                        android:text="10,344"
                        android:textColor="@color/white"
                        android:textSize="18dp"
                        android:typeface="serif" />

                    <TextView
                        android:id="@+id/tvCurrency"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:layout_marginLeft="3dp"
                        android:layout_marginTop="2dp"
                        android:gravity="top"
                        android:text="@string/global_currency"
                        android:textColor="@color/white"
                        android:textSize="10dp"
                        android:typeface="sans" />

                    <TextView
                        android:id="@+id/tvCardBalanceName"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentBottom="true"
                        android:layout_alignParentRight="true"
                        android:text="@string/pgDashboard_lblBalanceBanner"
                        android:textColor="@color/white"
                        android:textSize="11.33dp"
                        android:typeface="monospace" />
                </RelativeLayout>
            </LinearLayout>
        </RelativeLayout>
    </RelativeLayout>

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/pm_dashboard_seam" />
</LinearLayout>

对于我的业务端生命周期:

 private void refreshCards() {
    if (applyButtons != null)
        DashboardFragment.this.lvCards.removeFooterView(applyButtons);
    applyButtons = new LinearLayout(getActivity());
    applyButtons.setTag("FOOTER");

    applyButtons.setOrientation(LinearLayout.VERTICAL);
    AbsListView.LayoutParams LLParams = new AbsListView.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    applyButtons.setLayoutParams(LLParams);
    if (ininalCount < 32) {
        View createNewCardButton = getApplyButtonView(R.string.pgDashboard_lblCreateIninalCard, R.drawable.pm_dashboard_card_yenikartolustur, R.drawable.pm_dashboard_arrow_icon, new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getActivity(), CreateNewCardActivity.class);
                startActivity(intent);
            }
        });
        View AddCard = getApplyButtonView(R.string.pgDashboard_lblAddCard, R.drawable.pm_dashboard_card_yenikartekle, R.drawable.pm_dashboard_plus_icon, new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getActivity(), AddCardActivity.class);
                startActivity(intent);
            }
        });
        applyButtons.addView(createNewCardButton);
        applyButtons.addView(AddCard);
    }

    final View applyIngCard = getApplyButtonView(R.string.pgDashboard_lblApplyToIngCard, R.drawable.pm_dashboard_card_orange, R.drawable.pm_dashboard_arrow_icon, new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            CardApplicationActivity.Synchronizer.synchronize((BaseActivity) getActivity(), new OnSyncCompletedListener() {
                @Override
                public void onSyncCompleted() {
                    Intent intent = new Intent(getActivity(), CardApplicationActivity.class);
                    startActivity(intent);
                }
            });
        }
    });
    applyButtons.addView(applyIngCard);


    View view = new View(getActivity());
    view.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, getResources().getDisplayMetrics())));
    view.setBackgroundResource(getResources().getColor(R.color.transparent));
    applyButtons.addView(view);

    bindAdapter();
}

private View getApplyButtonView(int stringId, int backgroundId, int iconId, View.OnClickListener onClickListener) {

    final View view = inflater.inflate(R.layout.dashboard_list_card_item, null);

    return view;
}

public void bindAdapter() {
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
        DashboardFragment.this.lvCards.setLayoutTransition(new LayoutTransition());


    DashboardFragment.this.lvCards.addFooterView(applyButtons, null, false);

    if (adapter == null) {
        adapter = new CardListAdapter(getActivity(), R.layout.dashboard_list_card_item, productModelContainerList);
        controller = new CardListController(lvCards);
        lvCards.setDropListener(this);
        controller.setDragInitMode(CardListController.ON_LONG_PRESS);
        lvCards.setFloatViewManager(controller);
        lvCards.setOnTouchListener(controller);
        lvCards.setAdapter(adapter);
    }

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
        DashboardFragment.this.lvCards.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        DashboardFragment.this.lvCards.setLayoutTransition(null);
    }


}
private void刷新卡(){
如果(applyButtons!=null)
DashboardFragment.this.lvCards.removeFooterView(applyButtons);
applyButtons=newlinearLayout(getActivity());
setTag(“页脚”);
applyButtons.setOrientation(LinearLayout.VERTICAL);
AbsListView.LayoutParams LLParams=新的AbsListView.LayoutParams(LinearLayout.LayoutParams.MATCH_父项,LinearLayout.LayoutParams.WRAP_内容);
applyButtons.setLayoutParams(LLParams);
如果(ininalCount<32){
View createNewCardButton=getApplyButtonView(R.string.pgDashboard\u lblCreateInInnalCard,R.drawable.pm\u dashboard\u card\u Yenikartolustr,R.drawable.pm\u dashboard\u arrow\u图标,new View.OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent Intent=newintent(getActivity(),CreateNewCardActivity.class);
星触觉(意向);
}
});
View AddCard=getApplyButtonView(R.string.pgDashboard\u lblAddCard,R.drawable.pm\u dashboard\u dashboard\u yenikartekle,R.drawable.pm\u dashboard\u plus\u图标,新视图。OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent Intent=新的Intent(getActivity(),AddCardActivity.class);
星触觉(意向);
}
});
addView(createNewCardButton);
addView(AddCard);
}
最终视图applyIngCard=getApplyButtonView(R.string.pgDashboard\u lblApplyToIngCard,R.drawable.pm\u dashboard\u card\u橙色,R.drawable.pm\u dashboard\u箭头\u图标,新视图。OnClickListener(){
@凌驾
公共void onClick(视图v){
CardApplicationActivity.Synchronizer.synchronize((BaseActivity)getActivity(),新OnSyncCompletedListener(){
@凌驾
onSyncCompleted()上的公共无效{
Intent Intent=新的Intent(getActivity(),CardApplicationActivity.class);
星触觉(意向);
}
});
}
});
addView(applyIngCard);
视图=新视图(getActivity());
view.setLayoutParams(新的AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_父项,(int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_,20,getResources().getDisplayMetrics());
view.setBackgroundResource(getResources().getColor(R.color.transparent));
addView(视图);
绑定适配器();
}
私有视图getApplyButtonView(int-stringId、int-backgroundId、int-iconId、View.OnClickListener-OnClickListener){
最终视图=充气机。充气(R.layout.dashboard\u list\u card\u item,空);
返回视图;
}
公共void bindapter(){
if(android.os.Build.VERSION.SDK\u INT>=Build.VERSION\u code.HONEYCOMB)
DashboardFragment.this.lvCards.setLayoutTransition(新的LayoutTransition());
DashboardFragment.this.lvCards.addFooterView(applyButtons,null,false);
if(适配器==null){
适配器=新的CardListAdapter(getActivity(),R.layout.dashboard\列表\卡片\项,productModelContainerList);
控制器=新的CardListController(lvCards);
lvCards.setdLopListener(本);
控制器。设置绘图模式(长按时的CardListController);
lvCards.setFloatViewManager(控制器);
lvCards.setOnTouchListener(控制器);
lvCards.setAdapter(适配器);
}
if(android.os.Build.VERSION.SDK\u INT>=android.os.Build.VERSION\u code.HONEYCOMB){
DashboardFragment.this.lvCards.setChoiceMode(ListView.CHOICE\u MODE\u SINGLE);
DashboardFragment.this.lvCards.setLayoutTransition(null);
}
}

我在这里做了一些更改,请使用这些并让我知道。。。否则,我需要您的可提取资源来设置此设置

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="vertical" >

    <RelativeLayout
        android:id="@+id/lstCardItem"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:background="@color/background_holo_dark" />

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5.33dp"
            android:layout_marginLeft="11.67dp"
            android:layout_marginRight="11.67dp"
            android:layout_marginTop="6dp" >

            <ImageView
                android:id="@+id/ivCard"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_alignParentBottom="true"
                android:animateLayoutChanges="true"
                android:scaleType="fitXY" />

            <ImageView
                android:id="@+id/ivCardLock"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:animateLayoutChanges="true"
                android:background="@color/background_holo_light"
                android:scaleType="center"
                android:src="@color/bgColor" />

            <LinearLayout
                android:id="@+id/llInfo"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/cropBG"
                android:gravity="top|right"
                android:orientation="vertical"
                android:paddingLeft="18dp"
                android:paddingRight="18dp"
                android:visibility="visible" >

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_gravity="right|center_horizontal"
                    android:gravity="center|right"
                    android:orientation="horizontal"
                    android:paddingBottom="4dp"
                    android:paddingTop="4dp" >

                    <TextView
                        android:id="@+id/tvCardBalance"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_toLeftOf="@+id/tvCurrency"
                        android:gravity="top"
                        android:text="10,344"
                        android:textColor="@android:color/white"
                        android:textSize="18dp"
                        android:typeface="serif" />

                    <TextView
                        android:id="@+id/tvCurrency"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:layout_marginLeft="3dp"
                        android:layout_marginTop="2dp"
                        android:gravity="top"
                        android:text="Currency"
                        android:textColor="@android:color/white"
                        android:textSize="10dp"
                        android:typeface="sans" />

                    <TextView
                        android:id="@+id/tvCardBalanceName"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:text="pgDashboard_lblBalanceBanner"
                        android:textColor="@android:color/white"
                        android:textSize="11.33dp"
                        android:typeface="monospace" />
                </RelativeLayout>
            </LinearLayout>
        </RelativeLayout>
    </RelativeLayout>

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/bottom_btn_bg_color" />
</LinearLayout>


共享您的代码,这样我就可以正确地指导您……到底是什么工作不正常?“有三个吗?”阿凡米尔扎我分享了我的看法code@MahmoudElmorabea我的问题是显卡高度设置不象项目布局。而且,卡片布局的底部应该和阴影布局对齐。您可以检查屏幕截图上的箭头。问题在于您的相对布局,除非您没有设置相对布局的固定高度,否则无法在相对布局中设置视图底部的对齐。