Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >长文本按下线性布局中的按钮

长文本按下线性布局中的按钮
EN

Stack Overflow用户
提问于 2017-01-13 10:53:44
回答 2查看 115关注 0票数 0

我正在尝试以编程方式添加一些按钮。但由于某种原因,长文本会将我的线性布局中的整个按钮向下按下。

这是我用来复制这种行为的代码。

按钮:

代码语言:javascript
运行
AI代码解释
复制
   public class MyButton : Button
    {
        public MyButton(Context ctx) : base(ctx)
        {
            SetTextColor(Color.White);
            SetTextSize(Android.Util.ComplexUnitType.Dip, 20);
            var llp = new LinearLayout.LayoutParams(0, 100, 1);
            llp.SetMargins(4, 0, 4, 4);
            LayoutParameters = llp;
            SetBackgroundColor(Color.Black);
        }
    }

行:(我有两排按钮)

代码语言:javascript
运行
AI代码解释
复制
  public class MyRow : LinearLayout
    {
        public MyRow(Context context) : base(context)
        {
            if (LayoutParameters == null)
                LayoutParameters = GenerateDefaultLayoutParams();
            LayoutParameters.Height = ViewGroup.LayoutParams.WrapContent;
            LayoutParameters.Width = ViewGroup.LayoutParams.MatchParent;
            ((LinearLayout.LayoutParams)LayoutParameters).Gravity = GravityFlags.Top;
            ((LinearLayout.LayoutParams)LayoutParameters).Weight = 0;
            Orientation = Orientation.Horizontal;
        }
    }

标题:

代码语言:javascript
运行
AI代码解释
复制
 public class MyHeader : LinearLayout
    {
        public MyHeader(Context context, IAttributeSet set) : base(context, set)
        {
            Orientation = Orientation.Vertical;
            LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent, 0);
        }

        protected override void OnAttachedToWindow()
        {
            base.OnAttachedToWindow();
            Draw();
        }

        private void Draw()
        {
            for (int r = 0; r < 2; r++)
            {
                var row = new MyRow(Context);
                for (int i = 0; i < 4; i++)
                {
                    var btn = new MyButton(Context);
                    if (r == 0 && i == 0)
                        btn.Text = "long text long text  long text ";
                    else
                        btn.Text = $"Btn {r}.{i}";
                    row.AddView(btn);
                }
                AddView(row);
            }
        }
    }

然后在xaml中添加标题,如下所示:

代码语言:javascript
运行
AI代码解释
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:minWidth="25px"
    android:minHeight="25px">
    <App1.Resources.layout.MyHeader
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/myHeader1" />
</LinearLayout>

据我所知,按钮的内容不应该移动按钮的位置。但事实确实如此。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-18 14:50:24

显然,LinearLayout的工作方式是根据..的位置来布局其组件。文本(?)或组件的内容。

所有按钮的文本在图片中对齐。为了解决这个问题,我添加了

代码语言:javascript
运行
AI代码解释
复制
SetGravity(GravityFlags.CenterVertical);

添加到MyRow的构造函数。

票数 0
EN

Stack Overflow用户

发布于 2017-01-13 12:36:26

在您的按钮上添加

setEllipsize(TextUtils.TruncateAt.MARQUEE);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41632927

复制
相关文章
WPF 修改按钮按下的颜色
如何在按钮按下时使用这个附加属性修改按钮颜色?实际重写按钮的样式可以看到,在按下时可以修改颜色
林德熙
2018/09/19
5.9K0
WPF 修改按钮按下的颜色
WPF 修改按钮按下的颜色
如何在按钮按下时使用这个附加属性修改按钮颜色?实际重写按钮的样式可以看到,在按下时可以修改颜色
林德熙
2022/08/04
2.4K0
[android] 线性布局和布局的组合
/****************2016年4月25日 更新******************************/
唯一Chat
2019/09/10
5820
win10 uwp 获取按钮鼠标左键按下
我们可以使用PointerPressed获得鼠标右键按下,但是我们如何获得左键? UWP 左键按下经常获取不到,本文:如何获得鼠标按下
林德熙
2018/09/18
1.6K0
win10 uwp 获取按钮鼠标左键按下
我们可以使用PointerPressed获得鼠标右键按下,但是我们如何获得左键? UWP 左键按下经常获取不到,本文:如何获得鼠标按下
林德熙
2022/08/09
1.3K0
[C#]不通过事件方式获取键盘按钮按下的状态
源码来自:https://www.pinvoke.net/default.aspx/user32/GetKeyboardState.html
CNXY
2020/10/27
3.6K0
error信息显示状态下按钮按下时error不消失问题
当画面增加一个按钮,在输入框表示error状态下,按下按钮,error信息还是没有消失,即使在按下事件中已经设置了setCustomValidity()方法,还是没有起效。
repick
2021/11/25
1.6K0
error信息显示状态下按钮按下时error不消失问题
LinearLayout(线性布局)
要点: android:orientation="vertical"垂直线性布局,"horizontal"水平线性布局 android:gravity="top"(buttom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical、clip_horizontal)控制布局中控件的对齐方式。如果是没有子控件的控件设置此属性,表示其内容的对齐方式,比如说TextVi
欢醉
2018/01/22
7730
LinearLayout(线性布局)
直播视频网站源码,按钮背景点击按下变色
以上就是直播视频网站源码,按钮背景点击按下变色的相关代码, 更多内容欢迎关注之后的文章
yunbaokeji柯基
2020/11/11
1.6K0
直播视频网站源码,按钮背景点击按下变色
Python中将变量按行写入txt文本中
在'w'写入模式下,当我们下次写入变量时,会覆盖原本txt文件的内容,这肯定不是我们想要的。TXT有一个追加模式'a',可以实现多次写入:
py3study
2020/01/10
7.6K0
Python中将变量按行写入txt文本中
文本、图片和按钮在Flutter中怎么用
与iOS、Android和React类似,作为一个UI框架,Flutter自然也提供了很多UI控件。而文本、图片和按钮,则是这些不同的UI框架中构建视图都要用到的三个最基本的控件。
拉维
2019/08/12
8K0
文本、图片和按钮在Flutter中怎么用
长图按固定像素长度裁切
from PIL import Image import os,time #注意:必须使用绝对路径 old_path="F:\\原图\\" new_path="F:\\裁剪后\\" pic_names=os.listdir(old_path) #按固定像素裁切 def cut_pic(old_path,new_path,pic_name): im=Image.open(old_path+pic_name) (x,y)=im.size box=[0,0,x,3000] #宽度
诡途
2022/05/09
4100
python中按字母排序_在Python中按字母顺序排序文本文件的内容
我想在文件内部按字母顺序排序。我当前执行此操作的代码不起作用,文件保持不变。这个程序本身就是一个基本的调查问卷,用来实验读写文件。在import time
用户7886150
2021/01/27
5.2K0
android 线性布局(LinearLayout)
线性布局可以分为水平线性布局和垂直线性布局两种,分别是通过android:orientation="horizontal"和android:orientation="vertical"来控制的
Twcat_tree
2022/11/30
9410
android 线性布局(LinearLayout)
线性布局LinearLayout(二)
线性布局,顾名思义,指的是整个Android布局中的控件摆放方式是以线性的方式摆放的, 代码中加载主界面布局是从onCreate开始的:
李小白是一只喵
2020/04/24
4860
【鸿蒙 HarmonyOS】UI 布局 ( 线性布局 DirectionalLayout )
线性布局 DirectionalLayout , 指的是其中的组件都是按照一个方向 , 从左到右 , 或 从上到下 , 线性排列的 ;
韩曙亮
2023/03/28
6270
【鸿蒙 HarmonyOS】UI 布局 ( 线性布局 DirectionalLayout )
iOS 点击按钮复制文本
UIPasteboard *pab = [UIPasteboard generalPasteboard]; NSString *string = @"测试"; pab.string = string; if (pab == nil) { [MBProgressHUD showError:@"复制失败"]; }else {
Lee坚武
2020/10/10
4.2K0
iOS 点击按钮复制文本
基于pyQt的按键响应程序,实现按下按键进行图片曝光(按下按钮,运行另一个曝光图片程序.py)
创建UI界面 在designer中拖出一个按钮,并进行重属名。 编写程序 编写你要调用的程序
跋扈洋
2021/02/02
1.2K0
基于pyQt的按键响应程序,实现按下按键进行图片曝光(按下按钮,运行另一个曝光图片程序.py)
点击加载更多

相似问题

图像线性布局下的文本视图

11

删除线性布局下按钮的额外空间

50

按钮不显示嵌套线性布局中的文本

16

线性布局:按钮文本向右倾斜

42

线性布局中的文本

416
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档