- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的代码这是一个适配器,我想在 ListView 中将我的布局动态地左右对齐...并且空指针异常出现在 relativeParams.leftMargin=80;
Java:
public View getView(int position, View view, ViewGroup parent)
{
ViewHolder viewHolder;
ChatItem chatItem = getItem(position);
viewAligned = view;
if(view == null)
{
LayoutInflater layoutInflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.cell_messages_layout, null);
viewHolder = new ViewHolder();
viewHolder.message = (TextView) view.findViewById(R.id.fromZoneMessage1);
viewHolder.rl = (RelativeLayout) view.findViewById(R.id.messageLayout);
view.setTag(viewHolder);
}
else
{
viewHolder = (ViewHolder) view.getTag();
}
viewHolder.message.setText(chatItem.getSenderMessage());
if (chatItem.getAllignment() == 0)
{
// viewHolder.message.setGravity(Gravity.LEFT);
viewHolder.message.setBackgroundResource(R.drawable.sent_message);
// view.setBackgroundResource(R.drawable.sent_message);
}
else {
// viewHolder.rl.setBackgroundResource(R.drawable.recieved_message);
// view.holder.rl.set
// viewHolder.message.setGravity(Gravity.RIGHT);
viewHolder.message.setBackgroundResource(R.drawable.recieved_message);
RelativeLayout.LayoutParams relativeParams = (RelativeLayout.LayoutParams) viewHolder.rl.getLayoutParams();
relativeParams.leftMargin=80;
viewHolder.rl.setLayoutParams(relativeParams);
// LayoutParams lp = (LayoutParams) view.getLayoutParams();
}
return view;
}
我的布局是......
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/messageLayout"
>
<TextView
android:id="@+id/fromZoneMessage1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="20dp"
android:textStyle="bold"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_marginRight="10dp"
android:padding="5dp"
android:text="Hey Jack"
/>
</RelativeLayout>
请有人帮我为我的 View 留出左边距....
最佳答案
我只是将 View 类型转换为相对布局并设置其重力...为了设置参数,意味着边距我在主相对布局中采用了另一个虚拟相对布局并对其进行了调整。
你可以看下面的代码和相对布局
public View getView(int position, View view, ViewGroup parent)
{
ViewHolder viewHolder;
ChatItem chatItem = getItem(position);
viewAligned = view;
if(view == null)
{
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.cell_messages_layout, null);
viewHolder = new ViewHolder();
viewHolder.message = (TextView) view.findViewById(R.id.fromZoneMessage1);
viewHolder.rl = (RelativeLayout) view.findViewById(R.id.messageLayout);
view.setTag(viewHolder);
}
else
{
viewHolder = (ViewHolder) view.getTag();
}
viewHolder.message.setText(chatItem.getSenderMessage());
if (chatItem.getAllignment() == 0)
{
viewHolder.message.setGravity(Gravity.LEFT);
viewHolder.message.setBackgroundResource(R.drawable.recieved_message);
((RelativeLayout)view).setGravity(Gravity.RIGHT);
android.widget.RelativeLayout.LayoutParams params = new LayoutParams(android.widget.RelativeLayout.LayoutParams.WRAP_CONTENT, android.widget.RelativeLayout.LayoutParams.WRAP_CONTENT);
params.leftMargin = 50;
viewHolder.rl.setLayoutParams(params);
}
else {
viewHolder.message.setGravity(Gravity.LEFT);
viewHolder.message.setBackgroundResource(R.drawable.sent_message);
((RelativeLayout)view).setGravity(Gravity.LEFT);
android.widget.RelativeLayout.LayoutParams params = new LayoutParams(android.widget.RelativeLayout.LayoutParams.WRAP_CONTENT, android.widget.RelativeLayout.LayoutParams.WRAP_CONTENT);
params.rightMargin = 50;
viewHolder.rl.setLayoutParams(params);
}
return view;
}
布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/messageLayout"
>
<TextView
android:id="@+id/fromZoneMessage1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="20dp"
android:textStyle="bold"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_marginRight="10dp"
android:padding="5dp"
android:text="Hey Jack"/>
</RelativeLayout>
</RelativeLayout>
关于android - 设置 View 的左边距... NullPointerException 来了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27796253/
我正在开发一个需要在屏幕上查找对象的程序,到目前为止工作正常,但我遇到了多显示器配置问题。 GraphicsEnvironment.getLocalGraphicsEnvironment().getS
使用 mySql,我想列出客户对特定产品类别进行的所有购买。 所以,我有 3 个表:客户 (idCustomer, Name)、类别 (idCategory, CategoryName) 和订单 (i
我的网站上有一个关于 background-size:cover 的小问题我一直在 Firefox 中测试它,但是当我在谷歌浏览器中加载页面时,我在左边得到 1px 的白色。当我使用 backgrou
我已经搜索了几个小时来找到解决我的问题的方法,但没有成功。我遇到的问题是两个按钮的垂直堆叠。 这就是我想要做的:它说按钮在这里两次是我试图放置按钮的地方,但我所能做的就是让它们水平排列而不是垂直排列。
我有一个包含多个元素的导航栏。 Left1 Left2 Left3 Right1 Right2 Right3 我不知道如何将“fixedLef
您好,我正在尝试让 2 个 div 在左侧与右侧对齐。 #div1 #div2 #div1 #div2 #div3 #div2 #div3 #div3 诀窍是当浏览器窗口变小时,我希望#div2 位于
body { font-family: Arial, Helvetica, sans-serif; font-size: 13px;
这个问题在这里已经有了答案: In CSS Flexbox, why are there no "justify-items" and "justify-self" properties? (6
这是我的代码的 jsfiddle 链接: https://jsfiddle.net/Krisalay/zvxxeagh/ 我的 HTML 代码是: MESSAGE 1
所以我有 10 个复选框,每个标签都取自数组中相应的索引。我正在使用 ng-repeat 来展示它们: {{entity}}
我是一名优秀的程序员,十分优秀!