所以我试图创建一个的对话框,但是当我将引力设置为底部时,它仍然显示全屏。我希望对话框从第一个项目开始,然后从那里开始,最好的方法是什么?非常感谢所有帮助。
以下是我在对话框中显示的活动:
public class BottomSheetActivity extends AppCompatActivity implements RVAdapter.ClickListener {
public Intent messageIntent;
public String result = "";
public String fullList = "";
public RVAdapter adapter;
public LinearLayoutManager layoutManager;
public RecyclerView RV;
public Dialog sheet;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
messageIntent = getIntent();
fullList = messageIntent.getStringExtra("fullList");
adapter = new RVAdapter(this, getData(fullList));
layoutManager = new LinearLayoutManager(this);
sheet = new Dialog(this);
sheet.setContentView(R.layout.recycler_layout);
RV = (RecyclerView) sheet.findViewById(R.id.recycler_view);
RV.setLayoutManager(layoutManager);
RV.setAdapter(adapter);
adapter.setClickListener(this);
sheet.setTitle("Boom");
Window window = sheet.getWindow();
WindowManager.LayoutParams params = window.getAttributes();
params.gravity = Gravity.BOTTOM;
window.setAttributes(params);
sheet.show();
}
public List<MainInfo> getData(String fullList) {
List<MainInfo> data = new ArrayList<>();
String[] smallData = fullList.split(",");
for (int i = 0; i < smallData.length; i++) {
MainInfo current = new MainInfo();
current.listText = smallData[i];
//current.iconId = 777;
data.add(current);
}
return data;
}
@Override
protected void onStop() {
if ( TaskerPlugin.Setting.hostSupportsVariableReturn(messageIntent.getExtras())) {
Bundle vars = new Bundle();
vars.putString("%bs_command", result);
TaskerPlugin.Setting.signalFinish(getApplicationContext(), messageIntent, TaskerPlugin.Setting.RESULT_CODE_OK, vars);
}
//finalCommand = "snackbarcommand=:=" + result;
//AutoAppsThirdParty.sendCommand(this, finalCommand);
super.onStop();
}
@Override
public void itemClicked(View view, int position) {
switch (position) {
case 0:
Toast.makeText(BottomSheetActivity.this, "Banana", Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(BottomSheetActivity.this, "Test", Toast.LENGTH_SHORT).show();
break;
}
}
}