精华内容
下载资源
问答
  • Android Java代码设置LinearLayout中的layout_weight
    千次阅读
    2019-12-09 15:18:26
    LinearLayout.LayoutParams childViewLp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 1.0f);
    
    parentView.addView(childView, childViewLp);

     

    更多相关内容
  • 主要介绍了Android如何使用LinearLayout设置边框,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要介绍了Android中LinearLayout布局的常用属性总结,包括居中、重心、比例等线性布局中的基本设置,需要的朋友可以参考下
  • 主要介绍了Android布局之LinearLayout自定义高亮背景的方法,实例分析了Android中LinearLayout布局参数设置技巧,需要的朋友可以参考下
  • java - 以编程方式在LinearLayout设置边距我正在尝试使用Java(而不是XML)创建一个LinearLayout,其中的按钮可以填充屏幕并具有边距。 这是没有边距的代码LinearLayout buttonsView = new LinearLayout(this);...

    java - 以编程方式在LinearLayout中设置边距

    我正在尝试使用Java(而不是XML)创建一个LinearLayout,其中的按钮可以填充屏幕并具有边距。 这是没有边距的代码:

    LinearLayout buttonsView = new LinearLayout(this);

    buttonsView.setOrientation(LinearLayout.VERTICAL);

    for (int r = 0; r < 6; ++r) {

    Button btn = new Button(this);

    btn.setText("A");

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); // Verbose!

    lp.weight = 1.0f; // This is critical. Doesn't work without it.

    buttonsView.addView(btn, lp);

    }

    ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);

    setContentView(buttonsView, lp);

    这样工作正常,但你怎么给按钮边距,所以它们之间有空间? 我尝试使用LinearLayout.MarginLayoutParams,但是没有weight成员,所以这不好。 如果你在它的构造函数中传递它lp它也行不通。

    这不可能吗? 因为它确实看起来,并且它不会是第一个Android布局任务,你只能用XML做。

    10个解决方案

    467 votes

    这是一个完成它的小代码:

    LinearLayout ll = new LinearLayout(this);

    ll.setOrientation(LinearLayout.VERTICAL);

    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(

    LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

    layoutParams.setMargins(30, 20, 30, 0);

    Button okButton=new Button(this);

    okButton.setText("some text");

    ll.addView(okButton, layoutParams);

    Mauro answered 2019-02-23T23:45:10Z

    62 votes

    所以这很好,但实际上如何   你给按钮边距这样吗?   他们之间有空间吗?

    您可以在LinearLayout.MarginLayoutParams对象上拨打LinearLayout.LayoutParams。

    我试过用   LinearLayout.MarginLayoutParams,但是   没有重量成员,所以不是   好。

    LinearLayout.LayoutParams是LinearLayout.MarginLayoutParams的子类,如文档中所述。

    这不可能吗?

    没有。

    它不会是第一个Android   布局任务只能用XML完成

    欢迎您提供此声明的证明。

    就个人而言,我不知道任何只能通过XML而不是通过SDK中的Java方法完成的事情。 事实上,根据定义,一切都必须通过Java来实现(尽管不一定是通过SDK可访问的方法),因为XML不是可执行代码。 但是,如果您知道某些事情,请指出它,因为这是SDK中的一个错误,应该在某天修复。

    CommonsWare answered 2019-02-23T23:46:24Z

    30 votes

    要直接向项目添加边距(某些项目允许直接编辑边距),您可以执行以下操作:

    LayoutParams lp = ((ViewGroup) something).getLayoutParams();

    if( lp instanceof MarginLayoutParams )

    {

    ((MarginLayoutParams) lp).topMargin = ...;

    ((MarginLayoutParams) lp).leftMargin = ...;

    //... etc

    }

    else

    Log.e("MyApp", "Attempted to set the margins on a class that doesn't support margins: "+something.getClass().getName() );

    ...这无需了解/编辑周围的布局。 请注意“instanceof”检查,以防您尝试对不支持边距的内容运行此操作。

    Adam answered 2019-02-23T23:46:56Z

    19 votes

    由于设备屏幕像素密度的变化,总是使用DIP单位以编程方式设置边距。 如下_

    //get resources

    Resources r = getResources();

    float pxLeftMargin = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10, r.getDisplayMetrics());

    float pxTopMargin = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10, r.getDisplayMetrics());

    float pxRightMargin = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10, r.getDisplayMetrics());

    float pxBottomMargin = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, r.getDisplayMetrics());

    //get layout params...

    LayoutParams params=new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);

    params.setMargins(Math.round(pxLeftMargin), Math.round(pxTopMargin), Math.round(pxRightMargin), Math.round(pxBottomMargin));

    //set margin...

    yourLayoutTOsetMargin.setLayoutParams(params);

    希望这会有所帮助。

    Rupesh Yadav answered 2019-02-23T23:47:23Z

    9 votes

    我已经使用下面的代码直接设置了边距

    LinearLayout layout = (LinearLayout)findViewById(R.id.yourrelative_layout);

    LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);

    params.setMargins(3, 300, 3, 3);

    layout.setLayoutParams(params);

    这里唯一要注意的是,应该为以下包android.widget.RelativeLayout.LayoutParams导入LayoutParams,否则将出错。

    Janith answered 2019-02-23T23:47:55Z

    7 votes

    试试这个

    LayoutParams params = new LayoutParams(

    LayoutParams.WRAP_CONTENT,

    LayoutParams.WRAP_CONTENT

    );

    params.setMargins(left, top, right, bottom);

    yourbutton.setLayoutParams(params);

    Karan Bhalodiya answered 2019-02-23T23:48:15Z

    7 votes

    MarginLayoutParams layoutParams = (MarginLayoutParams) getLayoutParams();

    layoutParams.setMargins(leftMargin, topMargin, rightMargin, bottomMargin);

    Ginni answered 2019-02-23T23:48:34Z

    3 votes

    /*

    * invalid margin

    */

    private void invalidMarginBottom() {

    RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) frameLayoutContent.getLayoutParams();

    lp.setMargins(0, 0, 0, 0);

    frameLayoutContent.setLayoutParams(lp);

    }

    你应该是视图类型的wareGroup。在上面的代码中,我想改变frameLayout的边距,而frameLayout的视图组是RelativeLayout,所以你需要转换为(RelativeLayout.LayoutParams)

    Francis Shi answered 2019-02-23T23:49:00Z

    3 votes

    试试这个:

    MarginLayoutParams params = (MarginLayoutParams) view.getLayoutParams();

    params.width = 250;

    params.leftMargin = 50;

    params.topMargin = 50;

    Makvin answered 2019-02-23T23:49:20Z

    0 votes

    这里有单行解决方案:

    ((LinearLayout.LayoutParams) yourLinearLayout.getLayoutParams()).marginToAdd = ((int)(Resources.getSystem().getDisplayMetrics().density * yourDPValue));

    Stappo answered 2019-02-23T23:49:45Z

    展开全文
  • 主要介绍了Android应用借助LinearLayout实现垂直水平居中布局的方法,文中列举了LinearLayout线性布局下居中相关的几个重要参数,需要的朋友可以参考下
  • 设置LinearLayout的宽和高

    千次阅读 2020-04-15 10:09:22
    其实很简单,只不过不明白为什么要这么复杂才能设置LinearLayout mainLayout = findViewById(R.id.MainLayout); ViewGroup.LayoutParams lp; lp = mainLayout.getLayoutParams(); lp.width = 200; lp.he...

    其实很简单,只不过不明白为什么要这么复杂才能设置。

    LinearLayout mainLayout = findViewById(R.id.MainLayout);
            ViewGroup.LayoutParams lp;
            lp = mainLayout.getLayoutParams();
            lp.width = 200;
            lp.height = 500;
            mainLayout.setLayoutParams(lp);

     

    展开全文
  • 1.设置两个1:1横向布局的TextView LinearLayout.LayoutParams horizontalScale = new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.MATCH_PARENT, 1);//设置横向占比 LinearLayout horizontalView = ...

    1.设置两个1:1横向布局的TextView
    LinearLayout.LayoutParams horizontalScale = new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.MATCH_PARENT, 1);//设置横向占比
    LinearLayout horizontalView = (LinearLayout) LayoutInflater.from(context).inflate(R.layout.horizontal_view, null, false);
    TextView view1 = new TextView(this);
    TextView view2 = new TextView(this);
    horizontalView.addView(view1,horizontalScale);
    horizontalView.addView(view2,horizontalScale);

    2.将horizontalView纵向按1:1放置在一个新布局上
    LinearLayout.LayoutParams verticalScale = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0, 1);//设置纵向比例

    LinearLayout verticalView 2= (LinearLayout) LayoutInflater.from(context).inflate(R.layout.vertical_view2, null, false);

    verticalView.addView(verticalView ,verticalScale);
    verticalView.addView(verticalView2 ,verticalScale);

    展开全文
  • ============问题描述============ ... 我想把这个LinearLayout宽度设置成为FILL_PARENT,源码如下 LinearLayoutcheckboxLinearLayout=(LinearLayout)getLayoutInflater().inflate(R.layout.checkboxdoitem...
  • 找到好多人的,都是文章随便copy,自己都不验证下,特别说LinearLayout中可以设置他的divider属性的,我在Android Studio中试了,根本显示不出来,这边是csdn上一个朋友回答的,我收藏了,放到这里,后面备用。...
  • 要想让您的控件水平居中或垂直居中其实很简单,只要在控件的上一级中设置【android:gravity="center"】属性即可如:android:orientation="vertical"android:gravity="center"android:background="#000000"android:...
  • 代码设置图片,使用iv.setImageResource(R.mipmap.yishenghuo2); 2. 代码设置文本颜色,自定义的颜色,先获得资源tv.setTextColor(getResources().getColor(R.color.theme_color)); 3. Linearl
  • 我们继承LinearLayout,准备重写onMeasure方法 class AdaptiveLinearLayout @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0, defStyleRes: Int = 0) : ...
  • 1,第一种情况是我完全不定义xml布局文件,布局文件完全是在Java文件中写出来,代码如下: import android.annotation.SuppressLint; import android.graphics.Color; import android.os.Bundle; import android....
  • 三个函数功能分别: onMeasure(): 计算当前视图的大小,在layout过程中会使用 调用子视同的函数计算器大小 onLayout(): 布局当前视图的子视图的布局 on在一个LinearLayout中动态添加View(Java代码实现): for...
  • TextView tv = new TextView...LinearLayout ll = new LinearLayout(context); LayoutParams params = new LayoutParams(0,LayoutParams.WRAP_CONTENT ,100.0f); ll.addView(tv ,params); 100.0f代
  • LinearLayout 如何动态设置 margin?

    万次阅读 2015-04-16 16:33:58
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); lp.setMargins(10, 20, 30, 40); imageView.setLayoutPara
  • LinearLayout设置 水平且垂直 居中

    千次阅读 2018-09-21 14:57:25
    示例 android:layout_width="match_parent" ...核心代码 (1)设置水平居中 android:gravity=“center_horizontal” (2)设置垂直居中 android:layout_gravity=“center_vertical”
  • 原标题:Android中最简单最常用的LinearLayout线性布局良好的布局设计对于UI界面至关重要,在前面也简单介绍过,目前Android中的布局主要有6种,创建的布局文件默认为RelativeLayout相对布局,而在前面的示例学习中...
  • 在LineraLayout中,当设置android:orientation="horizental"子控件的android:layout_gravity="left"android:layout_gravity="right"是无效的,所以我们可以改用比重的方法来达到两个控件一个居左,一个居右的效果,...
  • 如何在代码设置LinearLayout的高度

    万次阅读 2013-10-30 15:36:36
    如何在代码设置LinearLayout的高度 main.xml声明 android:id="@+id/context" android:layout_width="match_parent" android:layout_h
  • 根据数量的多少动态加载LinearLayout的个数,每个LinearLayout内部是横向排列的三个TextView,要让每个TextView中的文字居中显示,三个TextView还要平均分布占满整个屏幕的宽度,即用JAVA代码设置每个TextView的android:...
  • LinearLayout 宽高设置

    千次阅读 2016-11-04 18:27:10
    if ( transLin ...// transLin.setLayoutParams(new LinearLayout.LayoutParams(mScreenWidth, height)); if ( transLin .getHeight() >height){ transLin . setLayoutParams (lp) ; } }
  • LinearLayout动态控制Margin

    千次阅读 2019-09-12 15:14:25
    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)m=MainLayout.getLayoutParams(); params.setMargins(0,0,0,0); mMainLayout.setLayoutParams(params);
  • 代码如下:<?xml version=”1.0″ encoding=”utf-8″?> <!– <LinearLayout> 线性版面配置,在这个标签中,所有元件都是按由上到下的排队排成的 –> <LinearLayout xmlns:android=”...
  • 原理:通过控件的setLayoutParams(params)来设置。而params的类型主要是根据该控件的父控件的类型来定义的。 例如,1、main.xml文件内容如下: <LinearLayout xmlns:android=...
  • android 线性布局LinearLayout实例代码,需要的朋友可以参考一下
  • 水平方向需要设置步骤如下 app:layout_constraintHorizontal_weight="1" 分别设置view1与view2的左右依赖 <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/constrain_bottom" ...
  • 我在RelativeLayout中有一个linearLayout。...在RelativeLayout中动态设置LinearLayout高度/宽度MAIN:public class MainActivity extends Activity {LinearLayout L;@Overrideprotected void o...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 162,276
精华内容 64,910
关键字:

linearlayout代码设置