Android 什么';listview项和listview页脚在呈现生命周期中的区别是什么?
我有一个包含项目和页脚视图的列表视图。项目布局工作正常,但页脚的布局与项目视图不一样 我不明白我的错在哪里 这是我的项目的布局xml: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 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我的问题是显卡高度设置不象项目布局。而且,卡片布局的底部应该和阴影布局对齐。您可以检查屏幕截图上的箭头。问题在于您的相对布局,除非您没有设置相对布局的固定高度,否则无法在相对布局中设置视图底部的对齐。