【问题标题】:How to position a inflated layout at the center of parent layout如何将膨胀的布局放置在父布局的中心
【发布时间】:2018-07-03 23:53:44
【问题描述】:

我在主布局中膨胀一个布局(imageviewlayout)。我在父视图的底部获取子视图。如何将子视图对齐在 Mainlayout 的中心。我已经读过它可以完成使用 Layoutparams 。你能告诉我如何在主布局的中心对齐子视图。

LinearLayout main = (LinearLayout)findViewById(R.id.sendlayout);
View childview = getLayoutInflater().inflate(R.layout.imageviewlayout, main,false);          
main.addView(childview);

这是我的 imageviewlayout(child):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"
    android:orientation="vertical" >
     <ImageView
        android:id="@+id/thumbnailImage"
        android:layout_width="250px"
        android:layout_height="250px"
        android:layout_gravity="center_horizontal"
        android:scaleType="fitCenter"
        android:src="@drawable/camera" />

</LinearLayout>

【问题讨论】:

  • 你试过 android:layout_centerInParent="true" 吗?

标签: android android-layout android-inflate layoutparams


【解决方案1】:

使用android:layout_gravity="center"

LayoutParams

将对象放在其容器的中心 和水平轴,不改变其大小。

PS:由于您在子视图中用容器包装了ImageView,我相信您应该在包装器中添加重力属性。这样,“容器”就是您的 main,而不是子视图的包装器。

【讨论】:

    【解决方案2】:

    我通过在 main.xml 中添加一个 inflaterlayout 容器解决了这个问题

      <LinearLayout 
        android:id="@+id/inflaterContainerLL" 
        android:layout_height="wrap_content"    
        android:layout_width="match_parent" 
        android:orientation="vertical">   
    </LinearLayout>
    

    并在 main.xml 活动中引用了 inflaterContainerLL

     LinearLayout main = (LinearLayout)findViewById(R.id.inflaterContainerLL);
    
     View vchild = getLayoutInflater().inflate(R.layout.imageViewlayout, main,false);
    
     main.addView(vchild);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多