Итак, я хотел сделать что-то немного другое: ТОЛЬКО границу снизу, чтобы имитировать разделитель ListView. Я изменил ответ Пита Дельпорта и получил следующее:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape
android:shape="rectangle">
<solid android:color="@color/background_trans_light" />
</shape>
</item>
<!-- this mess is what we have to do to get a bottom border only. -->
<item android:top="-2dp"
android:left="-2dp"
android:right="-2dp"
android:bottom="1px">
<shape
android:shape="rectangle">
<stroke android:width="1dp" android:color="@color/background_trans_mid" />
<solid android:color="@null" />
</shape>
</item>
</layer-list>
Обратите внимание, используя px вместо dp, чтобы получить ровно 1 пиксельный делитель (некоторые телефонные DPI приводят к исчезновению линии 1dp).
Только не вызывайте Dispose, используйте вместо этого Flush, это безопасно.
В случае BinaryWriter
, это не прямой вариант (хотя некоторые обертки потоков позволяют управлять этим, например GZipStream
и т.д.)
У Джона есть NonClosingStreamWrapper в MiscUtil , который должен работать: вы помещаете свой поток в незакрывающуюся оболочку и передаете оболочку BinaryWriter
. По сути, это проходит через все, кроме Close ()
и Dispose ()
.
Защищенный метод BinaryWriter.Dispose (bool) является виртуальным, и все, что он делает, - закрывает поток (вы можете проверить его истинность в Reflector ). -Этот метод вызывается методом Dispose ().
Вы можете просто унаследовать класс от BinaryWriter и переопределить метод Dispose (bool), чтобы он ничего не делал или что-то еще.