一、hotseat基本信息
Launcher2/res/xml-sw600dp/default_workspace.xml
launcher:className="com.android.dialer.DialtactsActivity" //这里注意不要写成"com.android.dialer/.DialtactsActivity"
launcher:container="-101"
launcher:screen="1" //第1屏,0-4共5屏
launcher:x="1" //图标X位置
launcher:y="0" /> //图标Y位置
launcher:container="-101" 表示"hotseat"
二、Hotseat尺寸
1、/Launcher2/res/values/config.xml
/Launcher2/src/com/android/launcher2/CellLayout.java
mHotseatScale = (res.getInteger(R.integer.hotseat_item_scale_percentage) / 100f);
2、hotseat cell大小
Launcher2/res/values/dimens.xml
如果此二值不够大,会导致hotseat上的icon显示不完整。
3、AllApp尺寸
void resetLayout() {
mContent.removeAllViewsInLayout();
// Add the Apps button
Context context = getContext();
LayoutInflater inflater = LayoutInflater.from(context);
BubbleTextView allAppsButton = (BubbleTextView)
inflater.inflate(R.layout.application, mContent, false);
allAppsButton.setCompoundDrawablesWithIntrinsicBounds(null,
context.getResources().getDrawable(R.drawable.all_apps_button_icon), null, null);
allAppsButton.setContentDescription(context.getString(R.string.all_apps_button_label));
allAppsButton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (mLauncher != null &&
(event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN) {
mLauncher.onTouchDownAllAppsButton(v);
}
return false;
}
});
allAppsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(android.view.View v) {
if (mLauncher != null) {
mLauncher.onClickAllAppsButton(v);
}
}
});
// Note: We do this to ensure that the hotseat is always laid out in the orientation of
// the hotseat in order regardless of which orientation they were added
int x = getCellXFromOrder(mAllAppsButtonRank);
int y = getCellYFromOrder(mAllAppsButtonRank);
CellLayout.LayoutParams lp = new CellLayout.LayoutParams(x,y,1,1);
lp.canReorder = false;
mContent.addViewToCellLayout(allAppsButton, -1, 0, lp, true);//Await
}