可能的重复:
Android 在布局中绘制分隔符/分隔线?
在我的活动中,我有两个权重为 1 的 Linearlayout,父级 Linearlayout 的权重为 2。现在我想在两个子 Linearlayouts 之间画一条线?
我想在屏幕的宽度上间隔出 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 文本是不好的。那只是暂时的。
我想做一个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
无法使线性布局中的视图向右浮动。下面是我的代码。如果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) 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)
动画按预期播放,但我的日志都没有写入。
我是否必须将自己的自定义动画附加到布局中才能正常工作,或者我是否遗漏了一些明显的东西?
每当我尝试设置 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)
是否需要特定的导入语句才能正确执行?
请查看以下 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)
我想将照片向右对齐,然后将其后的文本向右对齐
我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每对元素之间的空间。
以下哪个解决方案被认为是更清洁的?
或者其他一些?
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
我陷入了困境,我不知道如何在 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)作为边距。我真的陷入了困境,无法理解