标签: android-linearlayout

如何在两个线性布局之间画一条线

可能的重复:
Android 在布局中绘制分隔符/分隔线?

在我的活动中,我有两个权重为 1 的 Linearlayout,父级 Linearlayout 的权重为 2。现在我想在两个子 Linearlayouts 之间画一条线?

android-layout android-linearlayout

2
推荐指数
1
解决办法
8541
查看次数

在屏幕上均匀分布 TextView,并左右对齐

我想在屏幕的宽度上间隔出 3 个 TextView,第一个 TextView 接触左边距,第三个 TextView 接触右边距。

目前我能够实现以下目标:

|文本[空格]文本[空格]文本[空格]|

|[空格]文字[空格]文字[空格]文字|

|[空格/2]文本[空格]文本[空格]文本[空格/2]|

通过在水平 ListView 中分别设置左、右和中心重力。

我想实现:

|文本[空格]文本[空格]文本|

但我似乎无法理解。这是我的 XML:

<LinearLayout
    android:id="@+id/graph_xaxis_labels"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/linegraph_fragment"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:orientation="horizontal">

    <TextView
    android:id="@+id/textview_xaxis_0"
    android:layout_width="0px"
        android:layout_height="wrap_content" 
        android:layout_weight="1"
        android:textSize="8sp"
        android:text="02/12"
        />
    <TextView
        android:id="@+id/textview_xaxis_1"
        android:layout_width="0px"
        android:layout_height="wrap_content" 
        android:layout_weight="1"

        android:textSize="8sp"
        android:text="02/13"
        />
    <TextView
        android:id="@+id/textview_xaxis_2"
        android:layout_width="0px"
        android:layout_height="wrap_content" 
        android:layout_weight="1"

        android:textSize="8sp"
        android:text="02/14"
        />


</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

PS:我知道硬编码 TextView 文本是不好的。那只是暂时的。

xml android android-layout android-linearlayout

2
推荐指数
1
解决办法
4805
查看次数

Android:如何进行垂直合并?

我想做一个Android应用程序。此应用程序需要 7 行 7 列,如 7*7 矩阵。以下是问题:

1) 如何将单元格 1*1 与 2*1 或 1*1,2*1 和 3*1 垂直合并?2)我也可以动态制作吗?3)我应该使用哪种布局?

先感谢您。

这是 screen.xml

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="8"
android:orientation="horizontal"
android:rowCount="9" >


<Space
    android:layout_column="0"
    android:layout_columnSpan="1"
    android:layout_gravity="fill"
    android:layout_row="0" 
    android:tag=""/>

<TextView
    android:id="@+id/Monday"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_column="1"
    android:layout_gravity="center"
    android:layout_row="0"
    android:text="Monday"
    android:textSize="10dp" 
    android:tag="Monday"
    />



<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_column="2"
    android:layout_gravity="center"
    android:layout_row="0"
    android:text="Tuesday"
    android:textSize="10dp" 
    android:tag="Tuesday"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_column="3"
    android:layout_gravity="center"
    android:layout_row="0"
    android:text="Wednesd."
    android:textSize="10dp" 
    android:tag="Wednesday"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_column="4"
    android:layout_gravity="center"
    android:layout_row="0"
    android:text="Thursday"
    android:textSize="10dp" 
    android:tag="Thursday"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_column="5"
    android:layout_gravity="center"
    android:layout_row="0"
    android:text="Friday" …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-linearlayout android-fragments android-activity

2
推荐指数
1
解决办法
4394
查看次数

向右浮动 android

无法使线性布局中的视图向右浮动。下面是我的代码。如果layout_gravity将视图与其父视图对齐,那么第三个视图(下面代码中的第二个ImageView)应该在右侧,但事实并非如此。如何解决这个问题?

<LinearLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="#456abc"
android:gravity="center"
android:orientation="horizontal">

<ImageView
    android:id="@+id/left"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@mipmap/arrow_down" />

<TextView
    android:id="@+id/info"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="ABDEF" />

<ImageView
    android:id="@+id/right"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:src="@mipmap/arrow_right" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android android-layout android-linearlayout android-view

2
推荐指数
1
解决办法
9882
查看次数

我如何知道 animateLayoutChanges 何时完成?

animateLayoutChanges我通过添加到 XML来利用 LinearLayout 的自动(内置)动画。

效果很好。

但是,当我附加Animation.AnimationListener到 LinearLayout 时,它永远不会触发。因此,我很困惑我应该附加哪个监听器,也许我应该将它附加到什么,以便找出给定的过渡动画何时完成。

所以..我所拥有的是这样的:

       LinearLayout productsList = (LinearLayout)findViewById(R.id.pList);

       productsList.setLayoutAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {
            Log.d(TAG, "animation started");
        }

        @Override
        public void onAnimationEnd(Animation animation) {
            Log.d(TAG, "animation ended");
        }

        @Override
        public void onAnimationRepeat(Animation animation) {
            Log.d(TAG, "animation repeated");
        }
    });
Run Code Online (Sandbox Code Playgroud)

动画按预期播放,但我的日志都没有写入。

我是否必须将自己的自定义动画附加到布局中才能正常工作,或者我是否遗漏了一些明显的东西?

animation android android-linearlayout

2
推荐指数
1
解决办法
1333
查看次数

以编程方式调整线性布局的高度

每当我尝试设置 LinearLayout 的高度时,我总是会遇到以下异常:

java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

LinearLayout.LayoutParams  hide = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0);
LinearLayout.LayoutParams  show = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 100);

driverMainOptions.setLayoutParams(hide);
mapDirections.setLayoutParams(show);
Run Code Online (Sandbox Code Playgroud)

是否需要特定的导入语句才能正确执行?

java android android-layout android-linearlayout

2
推荐指数
1
解决办法
6124
查看次数

Android LinearLayout 向右对齐

请查看以下 XML

我希望图像在文本前右对齐

请看这张图片

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/list_selector"
android:orientation="horizontal"
android:padding="6dp" >

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:background="@drawable/rounded_corner"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/image_category"
        android:layout_width="72dp"
        android:layout_height="72dp"
        android:contentDescription="@string/app_name"
        android:padding="0dp"
        android:src="@drawable/ic_launcher" />
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:layout_marginLeft="8dp"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/txt_allphotos_categty"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="2dp"
        android:layout_marginRight="2dp"
        android:text=""
        android:textColor="@color/texthoverclr"
        android:gravity="right"
        android:textSize="20sp" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我想将照片向右对齐,然后将其后的文本向右对齐

android android-layout android-linearlayout

2
推荐指数
1
解决办法
6018
查看次数

LinearLayout中元素间距的最佳实践

LinearLayout用三个相同的元素创建了一个简单的:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Hello"/>

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Hello"/>

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Hello"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

现在我要介绍8dp每对元素之间的空间。

以下哪个解决方案被认为是更清洁的?

在此处输入图片说明 或者: 在此处输入图片说明

或者其他一些?

android android-layout android-linearlayout

2
推荐指数
2
解决办法
9001
查看次数

LinearLayout 2 views, if one is gone, it doesn't center the other, although I update the weightSum

this is my layout:

 <LinearLayout
        android:id="@+id/car_linear_layout"
        android:layout_toRightOf="@id/car_image"
        android:layout_width="wrap_content"
        android:orientation="vertical"
        android:layout_centerVertical="true"
        android:gravity="center_vertical"
        android:layout_height="50sp"
        android:weightSum="2">
        <TextView
            android:id="@+id/car_layout_name"
            android:textSize="17sp"
            android:maxLines="1"
            android:textColor="@color/black"
            android:ellipsize="end"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"/>
        <TextView
            android:id="@+id/car_layout_license"
            android:textSize="17sp"
            android:maxLines="1"
            android:ellipsize="end"
            android:textColor="@color/black"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"/>
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

And this is my code:

    if (userVehicleID != null) {
        carLayout.setWeightSum(2);
        carLicense.setText("test");
    }else{
        carLayout.setWeightSum(1);
        carLicense.setVisibility(View.GONE);
    } 
Run Code Online (Sandbox Code Playgroud)

But even so, if I debug, and it enters the ELSE , it will show just the first textview, but it's not centered. why?

android android-linearlayout layout-gravity android-layout-weight

2
推荐指数
1
解决办法
853
查看次数

如何以编程方式将边距中的 px 转换为 dp?

我陷入了困境,我不知道如何在 MarginLayout 中将 px 转换为 dp
所以这是我的主要 MarginLayout 设置方法

public static void setMargins (View v, int l, int t, int r, int b) {
    if (v.getLayoutParams() instanceof LinearLayout.MarginLayoutParams) {
        LinearLayout.MarginLayoutParams p = (LinearLayout.MarginLayoutParams) v.getLayoutParams();
        p.setMargins(l, t, r, b);
        v.requestLayout();
     }
}
Run Code Online (Sandbox Code Playgroud)

这是在元素更改其 marginLayout 的点击侦听器上

ArrowUp.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if(!Switch){
            setMargins(AdditionalOperations, 0, 0, 0, 800);
            Switch = true;
        }
        else{
            setMargins(AdditionalOperations, 0, 0, 0, 715);
            Switch = false;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

我的目标是将像素转换为 Dp,并以 DP 值(而不是 px)作为边距。我真的陷入了困境,无法理解

java android constants android-linearlayout android-studio

2
推荐指数
1
解决办法
3471
查看次数