我有一个简单的问题,我已经搜索了很多关于它的但仍然没有答案。我有一个viewPager,我想将其高度设置为屏幕尺寸的一半。我使用了setMinimumHeight()但没有发生任何事情。怎么做 ? 我的XML和Java代码如下:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:background="#d4d4d4">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_above="@+id/product_detail_button">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/layout_parent"
android:background="#ffffff">
<android.support.v4.view.ViewPager
android:id="@+id/product_detail_pictures"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:paddingTop="20dp"
android:paddingBottom="20dp"/>
</LinearLayout>
</ScrollView>
</RelativeLayout>
我的java代码是
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_product_detail_page);
dialogue=new ProgressDialog(this);
dialogue.setMessage("Loading...");
dialogue.show();
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
viewPager = (ViewPager) findViewById(R.id.product_detail_pictures);
int margin = (int) TypedValue.applyDimension
(TypedValue.COMPLEX_UNIT_DIP, 20*9, getResources().getDisplayMetrics());
viewPager.setPageMargin(-margin);
viewPager.setClipToPadding(false);
viewPager.setMinimumHeight(height/2);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
HelperMethods.p=this;
}
P.S。我在viewpager中使用Imageview来显示。
答案 0 :(得分:0)
如何为此布局和视图寻呼机添加布局,其中visibility = gone ..set layout weight = 1 ...并且当您需要更改viewpager高度时以编程方式更改可见性...我将为您提供xml布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/pager"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:background="#dddddd"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
>
<android.support.v4.view.ViewPager
android:layout_width="match_parent" android:layout_height="match_parent"
tools:context=".MainActivity"
android:layout_weight="1">
<android.support.v4.view.PagerTitleStrip
android:id="@+id/pager_title_strip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:background="#33b5e5"
android:textColor="#fff"
android:paddingTop="4dp"
android:paddingBottom="4dp">
</android.support.v4.view.PagerTitleStrip>
</android.support.v4.view.ViewPager>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffd60001"
android:layout_weight="1"
android:id="@+id/mylayout"
android:visibility="visible"></LinearLayout>
</LinearLayout>
当您将布局可见性更改为VISIBLE时,视图寻呼机高度将恰好是屏幕的一半
来自java,你这样做
(findViewById(R.id.mylayout)).setVisibility(View.VISIBLE); or View.GONE