【问题标题】:How to set ViewPager dimensions dynamically?如何动态设置 ViewPager 尺寸?
【发布时间】:2015-04-19 21:24:11
【问题描述】:

我有一个简单的问题,我已经搜索了很多,但仍然没有答案。我有一个 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;

}

附:我在 viewpager 中使用 Imageview 来显示。

【问题讨论】:

    标签: android imageview android-viewpager android-linearlayout


    【解决方案1】:

    如何为这个布局和视图寻呼机添加可见性=消失的布局..设置布局权重=1 ...并在需要更改视图分页器高度时以编程方式更改可见性...我会给你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>
    

    当您将布局可见性更改为可见时,视图分页器高度将恰好是屏幕的一半

    从java你这样做

    (findViewById(R.id.mylayout)).setVisibility(View.VISIBLE); or View.GONE
    

    【讨论】:

    • 我猜这是最简单的方法,试试看,告诉我这是不是你需要的
    猜你喜欢
    • 2022-08-02
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多