如何以编程方式设置LinearLayout的重力和布局重力

 堕落戥囝_631 发布于 2022-12-10 05:28
  • php
  • 1 个回答
    • 简短的回答

      设定重力

      linearLayout.setGravity(Gravity.CENTER);
      

      设置布局重力

      // the LinearLayout's parent is a FrameLayout      
      FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(400, 400);
      params.gravity = Gravity.TOP|Gravity.RIGHT;
      linearLayout.setLayoutParams(params);
      

      背景

      以前,我已经解释了布局中视图的"gravity"和"layout_gravity"之间的区别.

      设置gravity一个的LinearLayout本身的变化的范围内它的视图的位置.设置layout_gravity会LinearLayout更改LinearLayout在其父布局中的排列方式.

      此图像显示LinearLayout(白色)内的FrameLayout(棕色).该LinearLayoutgravity设置为center_horizontal和它layout_gravity被设置为right|bottom.

      在此输入图像描述

      这是xml:

      <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_
          android:layout_ >
      
          <LinearLayout
              android:id="@+id/llExample"
              android:layout_
              android:layout_
              android:layout_gravity="right|bottom"
              android:background="#e3e2ad"
              android:gravity="center_horizontal"
              android:orientation="vertical" >
      
              <TextView
                  android:id="@+id/textView1"
                  android:layout_
                  android:layout_
                  android:background="#bcf5b1"
                  android:text="TextView 1" />
      
              <TextView
                  android:id="@+id/textView1"
                  android:layout_
                  android:layout_
                  android:background="#aacaff"
                  android:text="TextView 2" />
      
          </LinearLayout>
      
      </FrameLayout>
      

      以编程方式改变事物

      下面的代码演示如何改变这两个gravitylayout_gravityLinearLayout.

      public class LinearLayoutGravity extends Activity {
      
          @Override
          public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.linear_layout_gravity);
      
              // Change the gravity (not layout_gravity) of the LinearLayout
              LinearLayout ll = (LinearLayout) findViewById(R.id.llExample);
              ll.setGravity(Gravity.CENTER);
      
              // Change the layout_gravity (not gravity) of the LinearLayout      
              FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(400, 400);
              params.gravity = Gravity.TOP|Gravity.RIGHT;
              ll.setLayoutParams(params);
          }
      }
      

      这是结果:

      在此输入图像描述

      也可以看看

      RelativeLayoutLinearLayout重力:有什么影响?

      2022-12-11 02:56 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有