为活动创建较小尺寸布局的最佳方法是什么

时间:2017-10-29 16:23:32

标签: android performance android-layout android-fragments

我要求用户点击"查看卡"按钮,打开一个较小的活动,不覆盖整个屏幕。

我做了一些R& D并找到了实现这一目标的多种选择。

1-创建一个布局文件,并在活动中创建一个自定义对话框,如下所示。

    //OnClickListener 

         Dialog dialog = new Dialog(main.this);
                    dialog.setContentView(R.layout.maindialog);
                    dialog.setTitle("This is my custom dialog box");
                    dialog.setCancelable(true);
   //this can have buttons and other stuff

2-创建Dialog Fragment

3-创建一个新活动,并在清单中添加以下行

android:theme="@android:style/Theme.Translucent"

我无法理解哪一个更好的方法来实现这一目标。

2 个答案:

答案 0 :(得分:1)

实际上,取决于你是否使用活动,对话。 例如: 如果数据很短并且只需要显示/写入一些小信息,那么使用对话框。 甚至你可以尝试隐藏(视图/布局),并在点击显示隐藏(视图/布局)与一些动画,工作后隐藏。 即使你现在也可以使用底片:)

答案 1 :(得分:1)

您可以为样式中的活动创建自定义 主题,并使用自定义导航图标,例如:

<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="navigationIcon">@drawable/ic_clear_white_24dp</item>
</style>

然后,您可以在清单中将此主题添加到您的活动中:

<activity
        android:name=".YourActivityName"
        android:theme="@style/DialogTheme" />

此时,您有一个基于Dialog的自定义主题的活动。如果您希望将宽度高度自定义添加到根布局,则可以执行此操作:

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="300dp"
    android:layout_height="300dp"/>

 <!-- Your activity content... -->

 </FrameLayout>