【问题标题】:The layout structure can not show all the content in android布局结构无法显示android中的所有内容
【发布时间】:2014-02-16 23:24:51
【问题描述】:

这是一个列表视图的自定义行视图,每行有三个内容,一个缩略图,一个名称和点。缩略图应该左对齐,而点应该右对齐,名称是 padding left ,大约是缩略图的 10 dp。

问题是,如果我按照下面的设计,而且名字太长,那我就看不到重点了,怎么解决?谢谢

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/profile_pic"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_marginLeft="20dp"
        android:layout_gravity="center_vertical|center"
        android:alpha="0.8"
        android:background="@android:color/darker_gray"/>

    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:paddingLeft="10dp"
        android:textColor="@android:color/white"
        android:textSize="16sp" />

    <View
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <TextView
        android:id="@+id/pts"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginRight="20dp"
        android:textColor="@android:color/white"
        android:textSize="16sp" />

</LinearLayout>

【问题讨论】:

  • 那么你喜欢发生什么?是否要截断名称?你想让它换成多行吗?您是否愿意附上当前行为的屏幕截图,以便更容易理解问题所在?
  • 最好换行,谢谢

标签: android android-layout textview imageview android-linearlayout


【解决方案1】:

对于您的ListView 项目的布局,您可以按照此布局...

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/profile_pic"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_gravity="center_vertical|center"
        android:layout_marginLeft="20dip"
        android:alpha="0.8"
        android:background="@android:color/darker_gray" />

    <TextView
        android:id="@+id/name"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:ellipsize="end"
        android:singleLine="true"
        android:paddingLeft="10dip"
        android:text="Name"
        android:textColor="@android:color/black"
        android:textSize="16sp" />

    <TextView
        android:id="@+id/pts"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="10dip"
        android:layout_marginRight="10dip"
        android:text="Point"
        android:textColor="@android:color/black"
        android:textSize="16sp" />

</LinearLayout>

【讨论】:

  • 谢谢,但现在重点是不同的行。它应该在 @+id/name 的右侧和同一行,也应该对齐父权
  • 那么你想ellipsize id @+id/nameTextView 吗?并修复了TextView的长度?
  • 是的,多余的数据可以裁剪,如果根据屏幕宽度裁剪就更好了。
  • 看我更新的答案...我想这次你会满足你的要求。
【解决方案2】:

用这个

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<ImageView
    android:id="@+id/profile_pic"
    android:layout_width="70dp"
    android:layout_height="70dp"
    android:layout_gravity="center_vertical|center"
    android:layout_marginLeft="20dp"
    android:alpha="0.8"
    android:background="@android:color/darker_gray" />

<TextView
    android:id="@+id/name"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:layout_weight="0.6"
    android:paddingLeft="10dp"
    android:singleLine="true"
    android:textColor="@android:color/white"
    android:textSize="16sp" />

<TextView
    android:id="@+id/pts"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:layout_marginRight="20dp"
    android:layout_weight=".4"
    android:singleLine="true"
    android:textColor="@android:color/white"
    android:textSize="16sp" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多