现在我有一个可能的暗示Scrollview / ListView正在考虑设备的真实高度和宽度来渲染布局。但是在简单的对话框中,我们可以在任何视图的(下方/左侧/右侧/上方)显示它。由于Scrollview / ListView正在考虑整个设备高度,因此它不允许滚动(当子布局小于父高度时不需要)。
我有一个滚动视图布局,我正在为了传递到第三方对话框EasyDialog而膨胀。这就是我的Scroll View布局的样子。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/menuAboutUs"
android:layout_width="200dp"
android:layout_height="40dp"
android:gravity="left"
android:orientation="horizontal">
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_margin="5dp"
android:background="@android:color/transparent"
android:padding="5dp"
android:scaleType="fitXY"
android:src="@drawable/about_us_ico" />
<TextView
android:layout_width="150dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:gravity="left|bottom"
android:padding="5dp"
android:textColor="@color/darkBlueColor"
android:text="About Us"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="3dp"
android:layout_marginBottom="3dp"
android:background="@color/colorPrimary">
</View>
<LinearLayout
android:id="@+id/menuAboutApp"
android:layout_width="200dp"
android:layout_height="40dp"
android:gravity="left"
android:orientation="horizontal">
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_margin="5dp"
android:background="@android:color/transparent"
android:padding="5dp"
android:scaleType="fitXY"
android:src="@drawable/about_app_ico" />
<TextView
android:layout_width="150dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:gravity="left|bottom"
android:padding="5dp"
android:text="About App"
android:textColor="@color/darkBlueColor"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="3dp"
android:layout_marginBottom="3dp"
android:background="@color/colorPrimary">
</View>
<LinearLayout
android:id="@+id/menuHistory"
android:layout_width="200dp"
android:layout_height="40dp"
android:gravity="left"
android:orientation="horizontal">
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_margin="5dp"
android:background="@android:color/transparent"
android:padding="5dp"
android:scaleType="fitXY"
android:src="@drawable/history_ico" />
<TextView
android:layout_width="150dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:gravity="left|bottom"
android:padding="5dp"
android:text="History"
android:textColor="@color/darkBlueColor"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="3dp"
android:layout_marginBottom="3dp"
android:background="@color/colorPrimary">
</View>
<LinearLayout
android:id="@+id/menuNutritionChart"
android:layout_width="200dp"
android:layout_height="40dp"
android:gravity="left"
android:orientation="horizontal">
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_margin="5dp"
android:background="@android:color/transparent"
android:padding="5dp"
android:scaleType="fitXY"
android:src="@drawable/nutrition_ico" />
<TextView
android:layout_width="150dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:gravity="left|bottom"
android:padding="5dp"
android:text="Nutrition Chart"
android:textColor="@color/darkBlueColor"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="3dp"
android:layout_marginBottom="3dp"
android:background="@color/colorPrimary">
</View>
<LinearLayout
android:id="@+id/menuTvCommercial"
android:layout_width="200dp"
android:layout_height="40dp"
android:gravity="left"
android:orientation="horizontal">
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_margin="5dp"
android:background="@android:color/transparent"
android:padding="5dp"
android:scaleType="fitXY"
android:src="@drawable/tvc_ico" />
<TextView
android:layout_width="150dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:gravity="left|bottom"
android:padding="5dp"
android:text="TV Commercials"
android:textColor="@color/darkBlueColor"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="3dp"
android:layout_marginBottom="3dp"
android:background="@color/colorPrimary">
</View>
<LinearLayout
android:id="@+id/menuJingles"
android:layout_width="200dp"
android:layout_height="40dp"
android:gravity="left"
android:orientation="horizontal">
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_margin="5dp"
android:background="@android:color/transparent"
android:padding="5dp"
android:scaleType="fitXY"
android:src="@drawable/jingles_ico" />
<TextView
android:layout_width="150dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:gravity="left|bottom"
android:padding="5dp"
android:text="Jingles"
android:textColor="@color/darkBlueColor"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
</LinearLayout>
</ScrollView>
当我处于纵向屏幕方向模式时,EasyDialog显示完整的布局视图。但是当我将手机方向更改为横向模式时。滚动视图切断了子布局,并且没有滚动完整的子布局。这就是我为Easy Dialogue夸大我的观点的方式。
以下是我如何夸大轻松对话
private void LeftMenu() {
View view = getLayoutInflater().inflate(R.layout.layout_left_menu_main, null);
menuAboutUs = (LinearLayout) view.findViewById(R.id.menuAboutUs);
menuAboutUs.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast.makeText(MainActivity.this,"Test",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this,AboutUsActivity.class);
intent.putExtra("moduleName","Main");
startActivity(intent);
overridePendingTransition(R.anim.enter, R.anim.exit);
}
});
menuAboutApp = (LinearLayout) view.findViewById(R.id.menuAboutApp);
menuAboutApp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast.makeText(MainActivity.this,"Test",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this,AboutAppActivity.class);
intent.putExtra("moduleName","Main");
startActivity(intent);
overridePendingTransition(R.anim.enter, R.anim.exit);
}
});
menuHistory = (LinearLayout) view.findViewById(R.id.menuHistory);
menuHistory.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast.makeText(MainActivity.this,"Test",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this,HistoryActivity.class);
intent.putExtra("moduleName","Main");
startActivity(intent);
overridePendingTransition(R.anim.enter, R.anim.exit);
}
});
menuNutritionChart = (LinearLayout) view.findViewById(R.id.menuNutritionChart);
menuNutritionChart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast.makeText(MainActivity.this,"Test",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this,NutritionChartActivity.class);
intent.putExtra("moduleName","Main");
startActivity(intent);
overridePendingTransition(R.anim.enter, R.anim.exit);
}
});
menuTvCommercials = (LinearLayout) view.findViewById(R.id.menuTvCommercial);
menuTvCommercials.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast.makeText(MainActivity.this,"Test",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this,TvCommercialActivity.class);
intent.putExtra("moduleName","Main");
startActivity(intent);
overridePendingTransition(R.anim.enter, R.anim.exit);
}
});
menuJingles = (LinearLayout) view.findViewById(R.id.menuJingles);
menuJingles.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast.makeText(MainActivity.this,"Test",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this, JinglesActivity.class);
intent.putExtra("moduleName", "Main");
startActivity(intent);
overridePendingTransition(R.anim.enter, R.anim.exit);
}
});
EasyDialog easyDialog = new EasyDialog(MainActivity.this)
.setLayout(view)
.setBackgroundColor(MainActivity.this.getResources().getColor(R.color.whiteColor))
// .setLocation(new location[])//point in screen
.setLocationByAttachedView(ibLeftTitle)
.setGravity(EasyDialog.GRAVITY_BOTTOM)
.setAnimationTranslationShow(EasyDialog.DIRECTION_X, 1000, -600, 100, -50, 50, 0)
.setAnimationAlphaShow(1000, 0.3f, 1.0f)
.setAnimationTranslationDismiss(EasyDialog.DIRECTION_X, 500, -50, 800)
.setAnimationAlphaDismiss(500, 1.0f, 0.0f)
.setTouchOutsideDismiss(true)
.setMatchParent(false)
.setMarginLeftAndRight(24, 24)
//.setOutsideColor(MainActivity.this.getResources().getColor(R.color.overlay))
.show();
}
我的内容小于设备的实际物理尺寸,但显示简单对话框的位置加上我的内容超出了横向模式下屏幕的物理显示尺寸的高度。