如何设置从屏幕底部显示的对话框?

时间:2015-11-19 20:29:54

标签: android

所以我试图创建一个picture的对话框,但是当我将引力设置为底部时,它仍然显示全屏。我希望对话框从第一个项目开始,然后从那里开始,最好的方法是什么?非常感谢所有帮助。

here

以下是我在对话框中显示的活动:

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;
        }
    }
}

0 个答案:

没有答案