現在のメニュー項目のサイズを変更するには、助けが必要です。にプログラムで項目を追加してカスタム メニューを作成しましたTableLayout
。これは私の現在のメニューです:
最初のメニューの高さを変更する必要があります。問題は、最初のメニュー項目の高さを変更すると、メニュー全体の高さが変わることです。私はこのようなメニューが欲しい:
現在のアイテムのサイズを変更する方法はありますか?
public synchronized void show(View v) {
mIsShowing = true;
boolean isLandscape = false;
int itemCount = mMenuItems.size();
if (itemCount<1) return; //no menu items to show
if (mPopupWindow != null) return; //already showing
Display display = ((WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
if (display.getWidth() > display.getHeight()) isLandscape = true;
View mView= mLayoutInflater.inflate(R.layout.custom_menu, null);
mPopupWindow = new PopupWindow(mView,LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT, false);
mPopupWindow.setAnimationStyle(android.R.style.Animation_Dialog);
mPopupWindow.setWidth(display.getWidth());
mPopupWindow.showAtLocation(v, Gravity.BOTTOM, 0, 0);
int divisor = mItemsPerLineInPortraitOrientation;
if (isLandscape) divisor = mItemsPerLineInLandscapeOrientation;
int remainder = 0;
if (itemCount < divisor) {
mRows = 1;
remainder = itemCount;
} else {
mRows = (itemCount / divisor);
remainder = itemCount % divisor;
if (remainder != 0) mRows++;
}
TableLayout table = (TableLayout)mView.findViewById(R.id.custom_menu_table);
table.removeAllViews();
for (int i=0; i < mRows; i++) {
TableRow row = null;
TextView tv = null;
ImageView iv = null;
row = new TableRow(mContext);
row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
for (int j=0; j< divisor; j++) {
if (i*divisor+j >= itemCount) break;
final CustomMenuItem cmi = mMenuItems.get(i*divisor+j);
View itemLayout = mLayoutInflater.inflate(R.layout.custom_menu_item, null);
if (j==0)
{
itemLayout.setBackgroundResource(R.drawable.current_menu);
itemLayout.setPadding(5, 5, 5, 5);
}
tv = (TextView)itemLayout.findViewById(R.id.custom_menu_item_caption);
tv.setText(cmi.getCaption());
iv = (ImageView)itemLayout.findViewById(R.id.custom_menu_item_icon);
iv.setImageResource(cmi.getImageResourceId());
itemLayout.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
mListener.MenuItemSelectedEvent(cmi);
if (mHideOnSelect) hide();
}
});
row.addView(itemLayout);
}
table.addView(row);
}
}
この行 itemLayout.setBackgroundResource(R.drawable.menubackground); でレイアウト(各メニュー項目)に背景を与える場合 、結果よりも行全体に背景を与える 場合;
しかし、私はこのメニューのようになりたい