小编hea*_*des的帖子

分组UITableView中第一个和第二个单元格之间的1个像素间隙

这似乎是一个简单的问题,但我找到了解决方案的砖墙,我希望这里有人可以提供帮助......

我正在使用UITableViewStyleGrouped创建一个UITableView,我看到我的表视图的每个部分的第一行和第二行之间有一条小的(1像素)白线(见图)

差距的例子

似乎这一行的原因是每个部分中的第一个单元格比其他单元格高1个像素.当我将每组的初始单元设置为29像素高(其他组为30)时,间隙消失并且一切都很好.

虽然这是成功的解决方法,但我宁愿知道发生这种情况的原因,所以我可以避免使用凌乱的黑客攻击.

供参考:

  • 我已经确定这不是我使用的背景图像的问题 - 它们都是30px高,并且我已经用具有相同结果的中间图像替换了顶部图像.
  • 我通过设置separatorStyle = UITableViewCellSeparatorStyleNone删除了单元格之间的所有边框
  • UITableViewStylePlain上不会发生此效果

任何帮助是极大的赞赏.

谢谢

表格设置代码:

  myTable = [[UITableView alloc] initWithFrame:CGRectMake(TABLE_SHIFT_OFFSET,
                                                          DATE_SLIDER_HEIGHT - DATE_SLIDER_SHADOW_HEIGHT,
                                                          326,
                                                          self.view.frame.size.height - DATE_SLIDER_HEIGHT + DATE_SLIDER_SHADOW_HEIGHT) style:UITableViewStyleGrouped];
  myTable.backgroundColor = [UIColor clearColor];
  myTable.backgroundView = nil;
  myTable.separatorStyle = UITableViewCellSeparatorStyleNone;
  [self.view addSubview:myTable];
  myTable.dataSource = self;
  myTable.delegate = self;
Run Code Online (Sandbox Code Playgroud)

细胞设置代码:

- (float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
  // This is a hack to make sure that a white line doesnt appear between the
  // first and second rows in the table, which …
Run Code Online (Sandbox Code Playgroud)

uitableview ios

16
推荐指数
1
解决办法
3881
查看次数

禁用OrientationEventListener时调用onOrientationChanged()

OrientationEventListener即使在我禁用报告事件后,我也遇到了问题.

我正在使用选项卡布局中的三个片段,并且只有一个片段需要更改方向.当我离开这个片段时,我希望方向事件停止产生效果.

我的代码的生命周期部分如下:

@Override
public void onActivityCreated(Bundle savedInstanceState)
{
    super.onActivityCreated(savedInstanceState);

    if (orientationEventListener == null)
    {
        Log.w(LogTags.MOBILE_MONITOR, "Creating orientationListener in " + this.toString());
        orientationEventListener = new OrientationEventListener(getActivity(), SensorManager.SENSOR_DELAY_NORMAL) {
            @Override
            public void onOrientationChanged(int angle) {

                ...Do work using getActivity()...

            }
        };
    }

}

@Override
public void onResume() {
    super.onResume();
    orientationEventListener.enable();    
}

@Override
public void onPause() {
    super.onPause();
    orientationEventListener.disable();
}
Run Code Online (Sandbox Code Playgroud)

当我在移动设备时切换片段时出现问题.当我尝试调用getActivity()onOrientationChanged(int angle)OrientationEventListener,调用返回null,这意味着我得到一个空指针异常,如果我尝试使用它.

虽然我可以在这里添加一个空检查,但我只是想知道为什么当我明确禁用了监听器时我会收到一个定向事件.如果我OrientationEventListener在故障点进行检查,它甚至会报告mEnabled=false.有没有办法阻止事件传播给我的听众?

lifecycle android orientation android-fragments android-activity

5
推荐指数
1
解决办法
4941
查看次数

setItemChecked没有在Gingerbread上工作

我使用以下选择器来更改listView项中的文本的外观:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true"
          android:color="#FFFFFFFF" /> <!-- checked -->
    <item android:state_activated="true"
          android:color="#FFFFFFFF" /> <!-- activated -->
    <item android:state_pressed="true"
          android:color="#FFFFFFFF" /> <!-- pressed -->
    <item android:state_focused="true"
          android:color="#FFFFFFFF" /> <!-- focused -->
    <item android:color="#FF000000" /> <!-- default -->
</selector>
Run Code Online (Sandbox Code Playgroud)

整个选择器在Android(ICS,JB)的更高版本上运行良好,但在Gingerbread上,而在_state项目正确应用时,当我在listView上调用setItemChecked时,不应用state_checked项.

我用来设置项目的代码如下:

@Override
protected void onResume()
{
    super.onResume();

    getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    for (int index = 0; index < measureList.size(); index++)
    {
        if (measureList.get(index).getId() == appContext.getMeasureId())
        {
            getListView().setItemChecked(index, true);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

用于设置选择器的xml是这样的:

<TextView
        android:id="@+id/item_text"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_marginTop="8dp"
        android:layout_marginLeft="8dp"
        android:paddingRight="10dp"
        android:ellipsize="end"
        android:layout_toRightOf="@id/item_thumb"
        android:maxLines="1"
        android:scrollHorizontally="true"
        android:textStyle="bold" …
Run Code Online (Sandbox Code Playgroud)

android listview selector android-2.3-gingerbread

0
推荐指数
1
解决办法
1516
查看次数